2017-04-24 126 views
6

我的Vuex商店包含具有各種複雜性的對象。一些嵌套對象,一些嵌套對象的數組。複雜對象的Vuex最佳實踐

我可以創建通用的功能發生變異的線沿線的指定屬性:

setProperty(state,{ type, id, prop, value }) 
{ 
    state[type][id][prop] = value; 
} 

但會很快變得複雜的嵌套的對象,對象數組。對於嵌套或其他方式的每個對象屬性都必須創建一個突變似乎也非常繁瑣。

創建突變以修改對象,嵌套對象,數組等的最佳做法是什麼?

另一個相關的問題,是它認爲是不好的形式向物體傳遞到突變,而不是在國家尋找起來:

setProperty(state,{ obj, prop, value }) 
{ 
    obj[prop] = value; 
} 
+0

引用的討論/交叉帖子:https://forum.vuejs.org/t/vuex-best-practices-for-complex-objects/10143 – krsyoung

回答

0

一般來說,它是最好的,如果你只能夠避免嵌套狀態結構在第一個地方。我不確定數據是如何構造的,但如果你這樣做是因爲你有這些對象或對象區域之間的關係,那麼可能值得嘗試使狀態形狀規範化。

這是來自Redux作者的好文章。它談論的是Redux,但其核心概念與Vuex非常相似。 https://redux.js.org/docs/recipes/reducers/NormalizingStateShape.html

Vues ORM是一個圖書館,自動爲你做。