sinter-compositions
Version:
vue3 composition 工具库
33 lines (23 loc) • 692 B
text/typescript
import {reactive, onMounted} from "vue";
// 这个方法只会被执行一次
export function useOnce(callback: Function) {
let called = false
return function (...args: Array<any>) {
if (called) return
callback.apply(args)
called = true
}
}
// 开关 , 每次调用 toggle 都会进行 boolean 的取反
export function useToggle(defaultValue ?: boolean, callback ?: Function) {
const state = reactive({
value: !!defaultValue
})
function toggle() {
state.value = !state.value
if (callback) {
return callback(state.value)
}
}
return [state, toggle] as [typeof state, typeof toggle]
}