vuex使用createNamespacedHelpers不生效(一定要与namespaced一块使用)

简介: 这篇文章讨论了在使用Vuex的`createNamespacedHelpers`时,如何正确地与模块命名空间结合使用,以避免出现不生效的问题。

createNamespacedHelpers

创建基于命名空间的组件绑定辅助函数。其返回一个包含 mapState、mapGetters、mapActions 和 mapMutations 的对象。它们都已经绑定在了给定的命名空间上。

长时间没用,忘了它和命名空间有联系了,特此再记录下。

dataBulletin.js

//  1 地市权限
//  2 省份权限
const cityStatus = 1
const dataBulletin = {
   
  namespaced: true,
  state: {
   
    currentRoleStatus: 222 || cityStatus,
  },

  mutations: {
   
    CHANGE_currentRoleStatus: (state, flag) => {
   
      console.log(flag, 'flagflagflagflagflagflagflag')
      state.currentRoleStatus = flag
    },
  },
  getter: {
   
    getCurrentRoleStatusFun(state) {
   
      return state.currentRoleStatus
    },
  },
}

export default dataBulletin

index.js

import Vue from 'vue'
import Vuex from 'vuex'

import app from './modules/app'
import user from './modules/user'
import org from './modules/org'
import dataBulletin from './modules/dataBulletin'

// default router permission control
import permission from './modules/permission'

// dynamic router permission control (Experimental)
// import permission from './modules/async-router'
import getters from './getters'

Vue.use(Vuex)

export default new Vuex.Store({
   
  modules: {
   
    app,
    user,
    org,
    permission,
    dataBulletin,
  },
  state: {
   },
  mutations: {
   },
  actions: {
   },
  getters,
})

使用:

import {
    createNamespacedHelpers } from 'vuex'
const {
    mapState, mapMutations} = createNamespacedHelpers('dataBulletin')

conputed:

  computed: {
   
    ...mapState({
   
      currentRoleStatus: (state) => {
   
        console.log(state, 'statestatestate')
        return state.currentRoleStatus
      },
    }),
 }

methods:

    ...mapMutations(['CHANGE_currentRoleStatus']),

官方文档链接:https://vuex.vuejs.org/zh/api/#createnamespacedhelpers

目录
相关文章
|
9月前
|
Kubernetes Nacos 数据中心
k8s(9)Namespace(命名空间)
Namespace(命名空间)
182 0
|
3月前
|
C++
C++命名空间(namespace)的使用
C++命名空间(namespace)的使用
|
JSON Kubernetes 数据中心
k8s--命名空间 namespaces
k8s--命名空间 namespaces
|
JavaScript 前端开发
面试题-TS(九):什么是命名空间(namespaces)?
命名空间是一种逻辑上的分组机制,它将相关的代码组织在一起,形成一个独立的作用域。在TypeScript中,命名空间通过关键字`namespace`来定义,它可以包含类、接口、函数、变量等各种类型的代码。命名空间允许我们将代码模块化,避免全局命名冲突,提高代码的可维护性和可读性。
|
4月前
|
消息中间件 RocketMQ
PopAck
PopAck
36 0
|
编译器 程序员 C++
【C++】--- namespace命名空间
【C++】--- namespace命名空间
70 0
【为什么】在大型项目中为什么不能用using namespace std;
【为什么】在大型项目中为什么不能用using namespace std;
|
JavaScript
学习TypeScript16(namespace命名空间)
TypeScript与ECMAScript 2015一样,任何包含顶级import或者export的文件都被当成一个模块。相反地,如果一个文件不带有顶级的import或者export声明,那么它的内容被视为全局可见的(因此对模块也是可见的)
117 0
学习TypeScript16(namespace命名空间)
|
Kubernetes 调度 数据中心
K8S 集群 NameSpace(命名空间)_NameSpace 介绍及查看 | 学习笔记
快速学习 K8S 集群 NameSpace(命名空间)_NameSpace 介绍及查看
1069 0
K8S 集群 NameSpace(命名空间)_NameSpace 介绍及查看 | 学习笔记
react+hook+ts项目总结-ts中namespace命名空间
react+hook+ts项目总结-ts中namespace命名空间
110 0