yann-usestate
v0.3.5
Published
usestate
Downloads
2
Readme
yann-useState
使用
import { useState } from 'yann-usestate';
// state 是一个vue的ref对象
// setState 是赋值state的函数
const [state, setState] = useState(false);
// 如果需要做数据比对
const [state, setState] = useState(false, {
// 如果开启diff,默认会采用内置拷贝的方式进行深拷贝
diff: true
});
//比对函数默认采用的是lodash的isEqual,也可以自定义一个比较函数
const [state, setState] = useState(false, {
diff: true,
diffEvent(newVal, oldVal) {
// 返回 true 表示两个值相同,不会重新赋值
return isEqual(newVal, oldVal);
}
});
// 如果你需要对赋值函数做一定的处理,那么你还可以设定 setStateEvent 函数
const [state, setState] = useState(false, {
// 他将在diff执行之后触发
setStateEvent(newVal) {
// 你需要将要赋值的内容进行返回
// 例如你需要做深拷贝,你可以使用 lodash的 cloneDeep
return cloneDeep(newVal);
}
});
// 如果你想知道开启 diff 后 setState 两个值是否相等可以通过 setState 函数的放回值确定,返回 true 表示两个值相等并且不会执行赋值操作,返回false表示不相等会进行赋值操作,(仅在diff开启的情况下是有效的)