vuex 使用 modules 标准写法 (vuex模块化)


以用户模块为例

soter 结构

//soter 结构
─store
│  getters.js
│  index.js
│
└─modules
user.js

modules

/store/modules/user.js

/**
 * 用户信息
 * */
const user = {
    state: {
        userInfo:{},//用户信息
    },
    mutations: {
        SET_USER_INFO(state, userInfo) {
            state.userInfo = userInfo
        },
    },
    actions: {
        SetUserInfo({commit}, userInfo) {
            commit('SET_USER_INFO', userInfo)
        },
    }
}

export default user

getters

/store/getters.js

/**
 * 全局数据响应写在这
 * */
const getters = {
    userInfo: state => state.user.userInfo
}
export default getters

store 入口文件

/store/index.js
/**
 * store 总线
 * */

import Vue from 'vue'
import Vuex from 'vuex'
import user from './modules/user'
import getters from './getters'

Vue.use(Vuex)
const store = new Vuex.Store({
    modules: {
        user,
    },
    getters,
})

export default store

把store挂载到vue对象上

//引入使用

import store from './store';

store.dispatch('SetUserInfo',{name:'张三'}) //调用

new Vue({
    router,
    store,
    components:{App},
    template:'<App/>'
}).$mount('#app')

  

取值

{{$store.getters.userInfo}} //响应模式
{{$store.state.user.userInfo}} //直接取值

  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM