Vue学习笔记-模块化+命名空间

目的

让代码更好维护,让多种数据分类更加明确(不同的模块挤在一个index.js中显得臃肿且不方便管理)

实现方式

  1. 修改store/index.js(也可以将不同模块分别写在不同的js文件中)

    javascript 复制代码
    const countAbout = {
    	//开启命名空间
        namespaced:true,
        actions:{
        	......
        },
        mutations:{
            ......
        },
        state:{
            sum:0,
        },
        getters:{
            bigSum(state){
                return state.sum*10
            }
        }
    }
    
    const personAbout = {
    	namespace = true,//开启命名空间
    	state = {
    		list:[xxx]
    	},
    	mutations = {...},
    	actions = {...}
    }
    
    const store = new Vuex.Store({
    	modules:{
    		countAbout,
    		personAbout
    	}
    })
  2. 开启命名空间后,组件读取各个模块的state数据

    javascript 复制代码
    //方式一:直接读取
    this.$store.state.countAbout.sum
    //方式二:借助mapState读取
    ...mapState('countAbout',['sum',...])
  3. 组件读取各个模块的getters数据

    javascript 复制代码
    //方式一:直接读取
    this.$store.getters['personAbout/firstPersonName']
    //方式二:借助mapGetters读取
    ...mapGetters('personAbout',['firstPersonName'])
  4. 组件调用dispatch

    javascript 复制代码
    //方式一:直接调用
    this.$store.dispatch('personAbout/addPerson',value)
    //方式二:借助mapActions
    ...mapActions('personAbout',{addPerson:'addPerson'})
  5. 组件调用commit

    javascript 复制代码
    //方法一:直接调用
    this.$store.commit('personAbout/ADD_PERSON',value)
    //方式二:借助mapMutations
    ...mapMutations('personAbout',{ADD_PERSON:'ADD_PERSON'})

注意:mapActions和mapMutation中无法填写函数参数,需要在html组件的@click方法声明中自己填写

相关推荐
QT 小鲜肉5 分钟前
【QT/C++】Qt网络编程进阶:TCP网络编程的基本原理和实际应用(超详细)
c语言·开发语言·网络·c++·qt·学习·tcp/ip
YuanDaima20488 分钟前
安全协议设计入门:原理与分析
人工智能·笔记·安全·网络安全·密码学·安全协议·课程
逆风优雅22 分钟前
vue 实现自定义message 全局提示
前端·javascript·vue.js
浮游本尊26 分钟前
React 18.x 学习计划 - 第六天:React路由和导航
前端·学习·react.js
yuxb731 小时前
Zabbix企业级分布式监控系统(上)
笔记·学习·zabbix
现在,此刻1 小时前
李沐深度学习笔记D1-什么是深度学习
人工智能·笔记·深度学习
猿来是你_L3 小时前
UGUI笔记——3D坐标转换成UGUI坐标
笔记·3d
fruge3 小时前
Vue项目中的Electron桌面应用开发实践指南
前端·vue.js·electron
崎岖Qiu8 小时前
【设计模式笔记17】:单例模式1-模式分析
java·笔记·单例模式·设计模式
Chloeis Syntax9 小时前
MySQL初阶学习日记(1)--- 数据库的基本操作
数据库·学习·mysql