我了解商店是什么以及 Vuex 的目的,但现在我在想:
“我实际上在商店里放了什么?”
我正在构建的 SPA 处理大量数据。最初我只投入“主要”的东西。然而,这样有错吗?是否应该store
实际保存SPA 的所有数据?如果我在网页上显示数据,是否应该通过store
?
我了解商店是什么以及 Vuex 的目的,但现在我在想:
“我实际上在商店里放了什么?”
我正在构建的 SPA 处理大量数据。最初我只投入“主要”的东西。然而,这样有错吗?是否应该store
实际保存SPA 的所有数据?如果我在网页上显示数据,是否应该通过store
?
根据经验,数据是否仅由组件之一使用,或者它是传播给子组件的一种方式,您应该可以在组件级别使用它。
但是,如果数据被两个以上的组件更改和访问,则可以将其置于集中状态:即 vuex。
引用文档:
如果您正在构建一个大中型 SPA,您可能会遇到让您考虑如何更好地处理 Vue 组件之外的状态的情况,而 Vuex 将是您自然而然的下一步。Redux 的作者 Dan Abramov 引用了一段很好的名言:
Flux 库就像眼镜:你会知道什么时候需要它们。
您还可以参考vue-hackernews示例,您可以在其中看到列表,用户在 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
},
vuex 中的状态:
state: {
activeType: null,
itemsPerPage: 20,
items: {/* [id: number]: Item */},
users: {/* [id: string]: User */},
lists: {
top: [/* number */],
new: [],
show: [],
ask: [],
job: []
}
},