Vuex 多模块管理 耦合解耦合

Vuex

基本使用

安装

npm i vuex

yarn add vuex

###1.引入依赖

import Vue  from 'vue'
import Vuex from 'vuex'
//注册
Vue.use(Vuex)
//创建数据管理对象
const store=new  Vuex.Store({
   state:{
   },
   mutations:{
   
	}//数据同步处理单元
   actions:{
   	
	}//数据异步请求单元
   getters:{
   }//数据运算单元        
  }
})
//导出数据对象
export defalult  store
//将 数据单元挂载在Vue上

import store from '.../url'

new Vue({
 store,
  render: h => h(App),
}).$mount('#app')

调用过程

actions(一般用获取请求) > mutations(更改数据操作) > state(数据存储)

耦合使用

//因为数据挂载在 Vue实例对象上 所以我们可以直接进行使用
this.$store.state....就拿到了 Vuex管理的数据

解耦合使用

管理一个数据模块的解耦合

//引入依赖
import { mapActions, mapState } from "vuex";
//引入数据
computed: {
    ...mapState(["RouleList"]),
},
//引入异步方法
...mapActions(["ininActionRouList"]) 
  • 引入的state方法写在 methods里面
  • 引入的state数据写在computed里面 computed

管理多个页面数据模块解耦合

store管理中心的配置

//如下配置
import Vue from 'vue'
import Vuex from 'vuex'

import menus from '../router/modules/menu.js' //数据模块
import roule from '../router/modules/Roule.js'
import user from '../router/modules/User.js'
import sort from '../router/modules/sort.js'
Vue.use(Vuex)
export default new Vuex.Store({
  //数据存储单元
   state: {
        catelist: []
    },
   //数据操作
    mutations: {
    },
   //数据请求
    actions: {
    },
    modules: {
        menus, roule, user,sort
    }
})

子模块状态管理

//引入 axios
import axios from '../../../utils/axios'
//创建数据存储
const DisMusic = {
    namespaced:true,
    state: {
        DismusicList: []
    },
    mutations: {
       
    },
    actions: {
      
    },
    getters: {
             
    },
}
export default DisMusic
//将这个子模块属性挂载到父模块modules即可




//引入依赖
improt {mapState,mapActions}  from 'vuex'
//引入数据
computed:{
   ...mapState['home',['list']]
}
methods:{`在这里插入代码片`
  ..mapActions['home','initActions']
}

此时就完成了 单个模块数据多个数据模块 的处理

注意

函数名使用方法
mutations(state,payload)修改数据
Actions(context,palyolad)异步操作

context 里面包含了 dispath(同步) 和 commit(异步)

调用例子

      ...mapState('DisStor',['DismusicList'])
  },
  methods:{
       ...mapActions('DisStor',['ActionsInit']),
  }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值