我知道,在Vuex中,我们可以执行store.subscribe次,我们会通过一个回调来调用store 中的每一次更改.

在我的应用程序中,我有一个包含许多模块的store ,我只想为一个特定的模块添加subscribe个,而不必使用这种逻辑if (mutation.type != thisModule.type) return;.

是否可以只订阅某些模块?Could not find it in the docs

推荐答案

我也有同样的问题,根据这个链接,我遇到了这个问题:

我的工作是判断每个订阅中的Mutations :

假设您有一个模块"yourmodule"供订阅,您可以执行以下操作:

store.subscribe((mutation, state) => {
  if (mutation.type.startsWith("yourmodule")){
    //do your stuff here
  }
})

Mutations .类型将给出实际的Mutations 名称,例如"yourmodule/yourcommit",我使用startswith()方法进行判断,因为我的模块中没有一个启动相同,但您可以对自己的项目使用更精确的判断.

Vue.js相关问答推荐

具有VUE身份验证的Azure AD

Vuetify 2中自定义标头的排序和筛选

Vuetify/Vue3 插槽模板之间的阴影

点击屏幕的任何位置都会禁用v-overlay

在 v-for 中定义变量有什么问题吗?

使用上传组件而不触发 POST 请求

判断 vue-router.beforeEach 不限制对路由的访问

带有 vue.js 的 img 网址

使用 vue.js 的 axios 预检失败错误 301

在 vue-router 中带有路由的 Vuejs2 模态

如何像 React 中的 {...props} 一样在 Vue 中解构 props?

如何判断 Vue 组件是否处于活动状态

Vue test-utils 如何测试 router.push()

Vue:从 Vue 实例更新组件数据

Vuetify 单选按钮未显示为选中状态

将 Vuetify 从 1.5 升级到 2 时,Sass-loader 错误 'options has an unknown property 'indentedSyntax''

我可以修改 Vue.js VNodes 吗?

Vue Chart.js - 条形图上的简单点/线

根据nuxt中的url参数动态加载组件

禁用外部主题文件产生的 Dart SASS 警告