我理解商店是什么以及Vuex的目的,但现在我在想:
"我实际上在商店里放了什么?"
SPA I&#m; m building处理大量数据。最初我只是在"主要"东西。但是,那是错的吗? store
是否应该为SPA保存所有数据?如果我在网页上显示数据,是否应该流经store
?
答案 0 :(得分:5)
根据经验,数据仅由其中一个组件使用,或者它是传播给子级的一种方式,您应该可以在组件级别使用它。
但如果数据被两个以上的组件更改和访问,则可以将其置于集中状态:即vuex。
引用docs:
如果你正在建立一个中到大规模的SPA,你很有可能 碰到让你思考如何更好地处理的情况 Vue组件之外的状态,Vuex将是自然的 下一步为您服务。作者丹·阿布拉莫夫(Dan Abramov)引用了一句好话 Redux:
Flux库就像眼镜:你知道什么时候需要它们。
您还可以参考vue-hackernews示例,其中您可以看到lists,users位于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
},
vuex中的
state: {
activeType: null,
itemsPerPage: 20,
items: {/* [id: number]: Item */},
users: {/* [id: string]: User */},
lists: {
top: [/* number */],
new: [],
show: [],
ask: [],
job: []
}
},