【vue】vuex中modules的基本用法
创始人
2024-01-28 18:47:19
0

1,什么时候用modules

由于使用单一状态树,应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时,store 对象就有可能变得相当臃肿。
为了解决以上问题,Vuex 允许我们将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块——从上至下进行同样方式的分割
在模块中使用:namespaced: true, 命名空间,添加之后,当前模块下的标识符可以和其它模块相同,用于解决不同模块的命名冲突问题

2,store文件结构

3.1 index.js中手动引入modules

import Vue from 'vue'
import Vuex from 'vuex'import bus from './modules/bus'
import app from './modules/app'const path = require('path')Vue.use(Vuex)let store = new Vuex.Store({state: {},mutations: {},actions: {},modules: {namespaced: true,app,bus}
});export default store

3.2 index.js 中动态引入modules

import Vue from 'vue'
import Vuex from 'vuex'
const path = require('path')Vue.use(Vuex)const files = require.context('./modules', false, /\.js$/)
let modules = {}
files.keys().forEach(key => {let name = path.basename(key, '.js')modules[name] = files(key).default || files(key)
})let store = new Vuex.Store({state: {},mutations: {},actions: {},modules
});export default store

4,app.js 文件中代码

let user = {namespaced: true,state: {user: {}},mutations: {setUser(state, val) {state.user = val;}},getters: {},actions: {}
}export default user;

 5,配置main.js,挂载store

new Vue({el: '#app',router,store,components: { App: App },template: ''
})

6,vue中使用

  mounted () {this.$store.commit('app/setUser', {name: '张三'});console.log(this.$store.state.app.user.name);}

7,js中使用

// 引入 这里的store 就相当于页面中的 this.$store
import store from '@/store'export const setCurUser = (user) => {let curUser = store.app.userif(!curUser) {store.commit("app/setUser", user)return user}return curUser
}

注意:

1,vue和vuex的版本搭配

vue2使用vuex3;vue3使用vuex4. 否则会出现this.$store为undefined错误

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...