//store->modules->app.js const state = { third: false, } const mutations = { SET_THIRD: (state, third) => { state.third = third }, } const actions = { setThird ({ commit }, third) { commit('SET_THIRD', third) }, } export default { namespaced: true, state, mutations, actions }
//store->getters.js const getters = { third: state => state.app.third, } export default getters
//store->index.js import Vue from 'vue' import Vuex from 'vuex' import getters from './getters' Vue.use(Vuex) const modulesFiles = require.context('./modules', true, /\.js$/) const modules = modulesFiles.keys().reduce((modules, modulePath) => { const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1') const value = modulesFiles(modulePath) modules[moduleName] = value.default return modules }, {}) const store = new Vuex.Store({ modules, getters }) export default store
//使用 获取值: this.$store.getters.third或者...mapGetters(["third"]) mutations设置值: this.$store.commit('app/SET_THIRD', true) actions设置值: this.$store.dispatch('app/setThird', true)