如果这是我的店.js文件:

const state = {
  count: 0,
  loggedIn: false
}

const mutations = {
  UP_COUNT(state) {
      state++;
  }
}

const actions = {
  upCount({ commit }) {
    commit('UP_COUNT');
  }
}   


this.$store.dispatch('upCount');


然后,假设在另一个Vue组件中,我想使用状态计数:

<div class="count">{{ this.$store.state.count }}</div>


推荐答案

正如我在this post篇文章中指出的,做事没有硬性和快速性的方法,但遵循一种实践并遵循它是最好的.

使用getter似乎有些过分,但只要getter名称保持不变,就可以在后台使用getter更改数据,这节省了大量工作,可以重新分解并try 查找可能使用this.$store.state.module.someValue的其他地方的所有引用.

它还允许您将基于多个状态变量的数据返回到一个getter中,即

`isAllowed: 'getIsAllowed'` 

可能是基于

getIsAllowed (state) {
  return state.loggedIn && state.hasPermission && state.somethingElse
}

您可以在一个地方轻松更改isAllowed的基础,而不是在组件中使用每个状态变量并多次执行逻辑.

Vue.js相关问答推荐

Vuetify快速失败不会阻止发送表单

Vue 3使用计算(computed)属性对象获取图像信息,在模板中呈现值时变为NaN

手动触发对观察到的对象/数组的更新

vue js导航到带有问号的url

Vue:将点击事件绑定到动态插入的内容

webpack vue-loader 配置

Vue动态mapGetters

如何从 Vuex 状态使用 Vue Router?

Vue 和 Bootstrap Vue - 动态使用插槽

如何将 mapActions 与 vue + Typescript 类组件一起使用?

vuejs中通过变量动态调用方法

Nuxt:显示静态文件夹中的本map像

Vue Prop 没有初始化器,也没有在构造函数中明确赋值

从 Axios 响应中解析 XML,推送到 Vue 数据数组

Vue CLI - 将构建输出组合到单个 html 文件

如何在 vuetify 中将工具提示添加到数据表标题?

构建 Vue.js 应用程序时 JavaScript 堆内存不足

依赖关系甚至在 package.json 和 node_modules 中都没有定义

vuex 是 state.array.push react式的吗?

在 Vuex 模块中进行继承的方法