useState多个变量太长,合理优化
解决办法:
使用 useImmer 替代 useState,
用对象包含多个属性,对对象的属性进行修改,然后用immer去处理。
使用 useImmer 替代 useState,
immer.js
这个库,是基于 proxy
拦截 getter
和 setter
的能力,让我们可以很方便的通过修改对象本身,创建新的对象用对象包含多个属性,对对象的属性进行修改,然后用immer去处理。
const [state,setState] = useImmer({ a: 1, b: { c: [1,2] d: 2 }, }); setState(prev => { prev.b.c.push(3); }))