vue.js - Vuex - 哪些数据应该流经商店?

标签 vue.js vuejs2 vuex state-management

我理解 store 是什么以及 Vuex 的目的,但现在我在想:

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

我正在构建的 SPA 处理大量数据。最初我只是把“主要”的东西放进去。然而,这是错误的吗? store 是否应该实际保存 SPA 的所有 数据?如果我在网页上显示数据,它应该流经 store 吗?

最佳答案

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

但是如果数据被两个以上的组件更改和访问,它可以被置于集中状态:这就是 vuex。

引自docs :

if you are building a medium-to-large-scale SPA, chances are you have run into situations that make you think about how to better handle state outside of your Vue components, and Vuex will be the natural next step for you. There's a good quote from Dan Abramov, the author of Redux:

Flux libraries are like glasses: you’ll know when you need them.

您也可以引用vue-hackernews例如,您可以在哪里看到 lists , users在 vuex store 中,而组件也有 data while 仅特定于该组件。

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: []
    }
  },

关于vue.js - Vuex - 哪些数据应该流经商店?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43452979/

相关文章:

javascript - then block 中出现意外标记

css - vuetify v-card 只有两个圆 Angular

javascript - Vue.js - 删除带有组件或类似组件的冗长引导输入字段代码

javascript - Vue.js : Call a child method from the parent component

vue.js - Nuxt生成显示错误: Cannot read property 'normalModuleFactory' of undefined

javascript - Nuxt JS SSR 标题未定义

javascript - 如何在 nuxtjs 中映射子状态

javascript - Vuex 我的组件对状态变化没有反应

javascript - 如何使用 vuex-router-sync 从路由模块获取 key

javascript - Vue 2 contentEditable with v-model