复制 <template>
<div>
<p>useToggleDemoState: {{useToggleDemoState}}</p>
<button @click="handleUseTToggle">设置指定值</button>
<button @click="useTToggle">useTToggle</button>
<button @click="useTSetLeft">useTSetLeft</button>
<button @click="useTSetCenter">useTSetCenter</button>
<button @click="useTSetRight">useTSetRight</button>
</div>
</template>
<script lang="ts">
import { ref } from 'vue';
import { useToggle } from 'v3hooks';
export default {
setup() {
//useToggle 测试
const [ useToggleDemoState, [ useTToggle, useTSetLeft, useTSetCenter, useTSetRight]] = useToggle('left','center','right');
const handleUseTToggle = ()=>{
useTToggle('center')
};
return {
useToggleDemoState,
handleUseTToggle,
useTToggle,
useTSetLeft,
useTSetCenter,
useTSetRight,
}
}
}
</script>
复制 <template>
<div class="hello">
<div> {{state}}</div>
<button @click="toggle">toggle</button>
<button @click="setToggle">setToggle</button>
</div>
</template>
<script lang="ts">
import { ref } from 'vue';
import { useToggle,useTimeout } from "../../../dist/index.js";
export default {
setup() {
const platform = ref<string>('安装 App');
const platform2 = ref<string>('安装中...');
const [state, [toggle]] = useToggle(platform, platform2,'不安装');
useTimeout(() => {
platform.value = `安装 ios App`
platform2.value = '安装中2....'
}, 3000);
const setToggle = ()=>{
toggle(platform)
}
return {
state,
toggle,
setToggle
};
},
};
</script>
复制 type State = string | number | boolean | undefined;
type RefState = Ref<State>;
type Fn = (v?: any) => void;
type Actions = Fn[];
function useToggle<T extends State, U extends RefState>(
...args: (T | U)[]
): [U, Actions];