当state信息足够庞大时,需要使用模块化把state数据分开管理
1、新建js文件,导出一个对象,对象中包含vuex的参数(state、getters、mutations、actions等),在对象中要包含 namespaced:true 属性,设置带命名空间以进行数据访问。
export default{
namespaced:true,//带命名空间
state:{
users:''
},
getters:{
users(state){
return state.users
}
},
mutations:{
changeUsers(state,payload){
state.users=payload
}
},
actions:{
CHANHE_USERS({commit},payload){
commit('changeUsers',payload)
}
}
}
import Vue from 'vue'
import Vuex from 'vuex'
import rules from './modules/rules'
import users from './modules/users'
Vue.use(Vuex)
export default new Vuex.Store({
//注册vuex模块
modules:{
rules,
users
}
})
3、在vue文件中访问
import {mapActions,mapGetters,createNamespacedHelpers} from 'vuex'
//使用createNamespacedHelpers 需要在模块中添加namespaced:true属性,其中参数的js文件导入时的模块名
const users=createNamespacedHelpers('users')
const rules=createNamespacedHelpers('rules')
export default {
methods:{
...mapActions(['CHUANGE_NUM']),
// ...users.mapActions()
},
computed:{
...mapGetters(['c','d']),
...users.mapGetters(['users']),
...rules.mapGetters(['admin'])
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |