store 的分拆与合并
前面的章节已经提到,Valtio 在代理一个对象的时候,会将其中嵌套的内容一并做代理处理。所以,这就给 store 的分拆提供了基础。
当存在一个以下形式的 store 时。
const state = proxy({
stateA: { a: 1, b: 1 },
stateB: { c: 2, d: 2 },
});
那么就可以直接将其分拆成两个独立的 store。
const stateA = state.stateA;
const stateB = state.stateB;
这样,就可以分别对 stateA
和 stateB
进行操作了。并且对 stateA
和 stateB
的修改,也会反映到 state
中。
相反的,如果有两个独立的 store,例如 stateA
和 stateB
,那么也可以将它们合并成一个 store。合并的时候只需要再定义一个新的 store,并将 stateA
和 stateB
作为其属性即可。
const state = proxy({
stateA,
stateB,
});