Vuex针对复杂对象的最佳实践

Hil*_*ilo 12 vuex

我的Vuex商店包含各种复杂性的对象.有些具有嵌套对象,有些具有嵌套对象数组.

我可以创建泛型函数来改变指定的属性:

setProperty(state,{ type, id, prop, value })
{
  state[type][id][prop] = value;
}
Run Code Online (Sandbox Code Playgroud)

但是对于嵌套对象,对象数组而言,这将很快变得复杂.必须为每个对象属性(嵌套或其他)创建变异似乎非常繁琐.

创建突变以修改对象,嵌套对象,数组等的最佳实践是什么?

另一个相关的问题是,将对象传递到突变中是不好的形式,而不是在状态中查找它们:

setProperty(state,{ obj, prop, value })
{
  obj[prop] = value;
}
Run Code Online (Sandbox Code Playgroud)

Kia*_*hii 8

一般来说,最好是一开始就避免嵌套状态结构。我不确定数据的结构,但是如果这样做,因为在那些对象或对象区域之间存在关系,可能值得尝试标准化状态形状。

这是Redux作者的优秀文章。它谈论的是Redux,但核心概念对于Vuex来说是完全相同的。 https://redux.js.org/docs/recipes/reducers/NormalizingStateShape.html

VUES ORM的是,自动为你的库。