美文网首页
vuex的modules简单使用

vuex的modules简单使用

作者: 聆听璇律 | 来源:发表于2019-01-29 16:38 被阅读9次

1.module是干啥的

背景:在Vue中State使用是单一状态树结构,应该的所有的状态都放在state里面,如果项目比较复杂,那state是一个很大的对象,store对象也将对变得非常大,难于管理。
module:可以让每一个模块拥有自己的state、mutation、action、getters,使得结构非常清晰,方便管理。

2.module的结构

const moduleA = {
 state: { ... },
 mutations: { ... },
 actions: { ... },
 getters: { ... }
 }

使用module和不使用module对比:

//不使用module
export default new Vuex.Store({
   state:{
            params1:'',
            params2:'',
            params3:'',
            params4:'',
            params5:'',
            .....
            //如果项目大会有很多很多个
}
});
//使用module
export default new Vuex.Store({
    modules: {
        moduleA,
        moduleB,
    }
});

//module通过import引入进来
moduleA={
    state:{
             params1:'',
            params2:'',
   }

moduleB={
    state:{
             params3:'',
            params4:'',
   }

}

通过对比就可以发现如果我们不使用module,store里面一旦state值够多,就会是store结构变得很复杂,而使用module可以使store结构简单明了。

3.module具体使用

3.1创建store,把module引入进来,这里以loginModule为例
ps:注意main.js引入store,加入vue根里面

new Vue({
    el: '#app',
    store,
    router,
    render: h => h(App),
}).$mount('#app');
import Vuex from 'vuex';
import LoginModule from './modules/LoginModule'
import Vue from 'vue'
Vue.use(Vuex);

export default new Vuex.Store({
    modules: {
        LoginModule
    }
});

3.2创建module
在module里面加入了action 和 mutations,store通过dispatch action 来改变state的值

const actions = {
    saveSessionId({commit},payload) {
        commit('saveSessionId',payload)
    }
};

const state = {
    sessionId: ''
};

const mutations = {
    saveSessionId(state, payload) {
        state.sessionId = payload;
    }
};

export default {
    actions,
    state,
    mutations
}

3.3在vue界面调用store修改值

this.$store.dispatch('saveSessionId', '12345678');

相关文章

  • vuex的modules简单使用

    1.module是干啥的 背景:在Vue中State使用是单一状态树结构,应该的所有的状态都放在state里面,如...

  • vueX modules的使用

    我一直以为最伤心的一句话是我不爱你,没想到更伤心的是对不起我忘不了他! 前端QQ群: 981668406在此附上我...

  • 第四章3 创建分步表单

    当表单比较复杂时可以创建分步表单,同时使用vuex使用vuex,创建store文件夹,使用了modules定义st...

  • vuex中modules的使用

    一、什么时间使用modules 由于使用单一状态树,应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时,...

  • vuex源码分析(三)——Module和ModuleCollec

    本文参考珠峰架构公开课之vuex实现原理 在使用vuex过程中,如果数据量很大可以用vuex的modules实现模...

  • Vuex、modules

    模块 命名空间 我们可以给模块对象上添加namespaced: true 命名空间: 可以给我们的模块的gette...

  • vue-vuex-modules的使用

    应用场景,当需要划分多模块时使用 创建项目选择router和vuex src/route/index.js中 在s...

  • 通过一个简单实例了解vuex

    简单说明 什么是vuex,vuex怎么使用,什么场景下适合使用vuex, vuex 文档中都有介绍。看完文档之后,...

  • vuex

    文档:http://vuex.vuejs.org/zh-cn/modules.html这个modules是用来干什...

  • 前端面试笔记

    1.vuex:store{state, mutations, actions, getters,modules};...

网友评论

      本文标题:vuex的modules简单使用

      本文链接:https://www.haomeiwen.com/subject/slbxsqtx.html