vuex模块化。

老子叫甜甜 提交于 2019-12-14 14:19:44

项目结构:

 

1:在src下新建目录store,然后再建storemodule.js文件,把 上篇 store.js文件抽出来:

import Vue from 'vue'
import Vuex from 'vuex'
import countsub from './countsub' //.js 或者.vue可以省略,其他文件不可以。

Vue.use(Vuex)
export default new Vuex.Store({
modules:{
    countsub,
}
})

2:在store目录下再建countsub.js文件,抽离上篇store.js文件中vuex的四部分内容,然后在storemodule.js文件中注册:

export default{
    state:{
        count:0
       },
       getters:{
           addcountgetters(state){
              return state.count + 4;
           }
       },
       mutations:{//相当于methods,定义一些方法(同步)。方法里有个默认参数--state
         addcount(state){
             state.count++;
         },
         subcount(state){
             state.count--;
         }
       },
       actions:{//异步操作(也可以定义同步方法)。提交mutation,而不是直接变更状态。
         addcountasync(context){
             setTimeout(()=>{
               context.commit('addcount');
             },1000);//延迟一秒。
         }
       }
}

 

 3:修改main.js中的注册文件:

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!