Я использую 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);
},
Я доволен первым способом.Есть ли какие-либо недостатки в написании мутаций, которые изменяют дочерний объект состояния, используя полезную нагрузку вместо параметра состояния?