码迷,mamicode.com
首页 > 其他好文 > 详细

Vuex modules的使用

时间:2020-07-06 01:19:48      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:ret   settime   基本   bsp   image   time   创建   http   cli   

1 为什么要使用模块

当应用变得复杂时,store对象就会变得相当臃肿,为了解决这个问题,可以将store分割成模块(module)。而每个模块拥有自己的store mutation action getter等

2 代码

2.1 分割模块与定义模块

src\store\index.js

  modules:{
    a:moduleA,
    b:moduleB
  }
//2 创建对象
const moduleA = {
  state:{
    name:‘张三‘
  },
  getters:{
    fullname(state){
      return state.name + ‘先生‘
    },
    fullname2(state,getters,rootState){
      return getters.fullname + rootState.counter
    }
  },
  mutations:{
    updateName(state,payload) {
      state.name = payload
    }
  },

  actions:{
    aUupdateName(context){
      //模块里的commit 只能commit到自己模块里的mutations,
      setTimeout(()=>{
        context.commit(‘updateName‘,‘王五‘)
      },1000)
    }
  },
  //模块里基本不会再分割
  modules:{}
}

 

2.2 使用模块 src\App.vue

    <h2>{{$store.state.a.name}}</h2>
    <h2>{{$store.getters.fullname}}</h2>
    <h5>{{$store.getters.fullname2}}</h5>
    <button @click="updateName">修改名字</button>
    <button @click="asyncUpdateName">异步修改名字</button>
      updateName(){
        this.$store.commit(‘updateName‘,‘李四‘)
      },
      asyncUpdateName(){
        this.$store.dispatch(‘aUupdateName‘)
      }

页面展示结果

技术图片

 

Vuex modules的使用

标签:ret   settime   基本   bsp   image   time   创建   http   cli   

原文地址:https://www.cnblogs.com/polax/p/13252702.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!