vuex 熱更新
// store.js
import Vuex from 'vuex'
import defaultState from './state/state'
import mutations from './mutations/mutations'
import getters from './getters/getters'
import actions from './actions/actions'
const isDev = process.env.NODE_ENV === 'development'
export default () => {
const store = new Vuex.Store({ // 不直接 export
strict: isDev,
state: defaultState,
mutations,
getters,
actions
})
if (module.hot) { // 熱更新
module.hot.accept([
'./state/state',
'./mutations/mutations',
'./actions/actions',
'./getters/getters'
], () => {
const newState = require('./state/state').default
const newMutations = require('./mutations/mutations').default
const newActions = require('./actions/actions').default
const newGetters = require('./getters/getters').default
store.hotUpdate({
state: newState,
mutations: newMutations,
getters: newGetters,
actions: newActions
})
})
}
return store
}