【发布时间】:2019-05-22 19:50:22
【问题描述】:
我正在使用带有数据树的 vuex。它是响应式的并且运行良好,因为我们有一个相应的组件树。由于结构是一棵树,因此想要改变一个深度嵌套的子对象是很常见的。实现这一点的简单方法是使用在其有效负载中接受孩子的突变:
removeLeaf(state, { child, leaf }) {
child.children = child.children.filter((i: any) => i !== leaf);
state = state; // silence warning
},
另一种方法是将突变更改为这样工作:
removeLeaf(state, { child_, leaf }) {
let child = searchForChild(state, child_);
child.children = child.children.filter((i: any) => i !== leaf);
},
我对第一种方式很满意。通过使用有效负载而不是状态参数来编写修改状态子对象的突变有什么缺点吗?
【问题讨论】: