Gar*_*nzo 4 state-management vue.js vuex vuejs2
我明白了家商店是以及Vuex的用途,但现在我在想:
“我实际上在商店里放什么?”
我正在建立的SPA处理大量数据。最初,我只是放入“主要”内容。但是,那是错的吗?store实际应否保留SPA的所有数据?如果我在网页上显示数据,那应该流经store吗?
根据经验,数据是仅由组件之一使用,还是以一种方式传播到子组件,应该在组件级别拥有该数据就可以了。
但是,如果数据被两个以上的组件更改和访问,则可以将其置于集中状态:即vuex。
从文档引用:
如果您正在构建中型到大型的SPA,则很可能遇到了使您思考如何更好地处理Vue组件外部状态的情况,而Vuex将是您自然的下一步。Redux的作者Dan Abramov有一个很好的报价:
助焊剂库就像眼镜:您会在需要时知道它们。
您还可以参考vue-hackernews示例,在其中可以看到list,用户位于vuex存储中,而组件也具有数据,而这些数据仅特定于该组件。
组件中的数据:
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
},
Run Code Online (Sandbox Code Playgroud)
在vuex中的状态:
state: {
activeType: null,
itemsPerPage: 20,
items: {/* [id: number]: Item */},
users: {/* [id: string]: User */},
lists: {
top: [/* number */],
new: [],
show: [],
ask: [],
job: []
}
},
Run Code Online (Sandbox Code Playgroud)