我的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)
一般来说,最好是一开始就避免嵌套状态结构。我不确定数据的结构,但是如果这样做,因为在那些对象或对象区域之间存在关系,可能值得尝试标准化状态形状。
这是Redux作者的优秀文章。它谈论的是Redux,但核心概念对于Vuex来说是完全相同的。 https://redux.js.org/docs/recipes/reducers/NormalizingStateShape.html
而VUES ORM的是,自动为你的库。
归档时间: |
|
查看次数: |
3536 次 |
最近记录: |