2017-04-17 25 views
1

我明白什麼店裏和Vuex的目的,但現在我在想:「什麼?我居然把在店裏」Vuex - 什麼數據應該流經商店?

我正在建設的SPA處理大量數據。起初,我只是把「主要」的東西。但是,那是錯的? store是否應該爲SPA保存全部數據?如果我在網頁上顯示數據,是否應該流過store

回答

1

作爲一個經驗法則,數據只被其中一個組件使用,或者它是一種傳播給孩子的方式,您應該可以在組件級別進行。

但是,如果數據被兩個以上的組件改變和訪問,它可以處於集中狀態:即vuex。

docs報價:

如果你正在建設一箇中型到大型的SPA,那麼可能是你 碰上,讓你思考如何更好地處理 狀態以外的情況下,您的Vue組件和Vuex將是​​您的下一步自然的 。有來自丹阿布拉莫夫,筆者終極版 良好的報價:

助焊劑庫是像眼鏡:你知道,當你需要他們。

您也可以參考vue-hackernews例如,在這裏你可以看到listsusers在vuex店,同時組件也有data而只特定於該組件。

data在組件:

data() { 
    const data = { 
     loading: false, 
     transition: 'slide-up', 
     displayedPage: isInitialRender ? Number(this.$store.state.route.params.page) || 1 : -1, 
     displayedItems: isInitialRender ? this.$store.getters.activeItems : [] 
    } 
    isInitialRender = false 
    return data 
    }, 

state在vuex:

state: { 
    activeType: null, 
    itemsPerPage: 20, 
    items: {/* [id: number]: Item */}, 
    users: {/* [id: string]: User */}, 
    lists: { 
     top: [/* number */], 
     new: [], 
     show: [], 
     ask: [], 
     job: [] 
    } 
    }, 
+0

「如果數據發生變化,訪問由兩個以上的組件可以放在中央集權的國家」 < - 這可能一個好的方法來思考它。 2個或更多的組件 - >它正在商店中。 – Garfonzo