vuex

//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)

  

  

posted @ 2021-10-08 14:30  chicidol  阅读(15)  评论(0编辑  收藏  举报