5

我了解商店是什么以及 Vuex 的目的,但现在我在想:

“我实际上在商店里放了什么?”

我正在构建的 SPA 处理大量数据。最初我只投入“主要”的东西。然而,这样有错吗?是否应该store实际保存SPA 的所有数据?如果我在网页上显示数据,是否应该通过store?

4

1 回答 1

7

根据经验,数据是否仅由组件之一使用,或者它是传播给子组件的一种方式,您应该可以在组件级别使用它。

但是,如果数据被两个以上的组件更改和访问,则可以将其置于集中状态:即 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: []
    }
  },
于 2017-04-17T14:23:15.970 回答