chushih
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
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,
|
||||
})
|
||||
|
||||
// Vue.prototype.$state = store.state
|
||||
|
||||
/**
|
||||
* 原vuex
|
||||
* 取值 this.$store.state.xxx
|
||||
* 设值 this.$store.commit('beichen/setState', { state, value })
|
||||
*
|
||||
* 下面则
|
||||
* 取值 this.$state.xxx
|
||||
* 设值 this.$state.xxx = xxx
|
||||
* */
|
||||
Vue.prototype.$state = new Proxy(
|
||||
{},
|
||||
{
|
||||
get(target, state) {
|
||||
return store.state[state]
|
||||
},
|
||||
set(target, state, value) {
|
||||
store.commit('app/setState', { state, value })
|
||||
return true
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
export default store
|
||||
Reference in New Issue
Block a user