热重载
Vuex 支持在开发中热重载 actions 和 mutations(使用 Webpack 的 Hot Module Replacement API)。你也可以在 Browserify 里使用 browserify-hmr 插件来实现同样的功能。
只需要简单地调用 store.hotUpdate()
:
// ...
const store = new Vuex.Store({
state,
actions,
mutations
})
if (module.hot) {
// 使 actions 和 mutations 成为可热重载模块
module.hot.accept(['./actions', './mutations'], () => {
// 获取更新后的模块
// 因为 babel 6 的模块编译格式问题,这里需要加上 .default
const newActions = require('./actions').default
const newMutations = require('./mutations').default
// 加载新模块
store.hotUpdate({
actions: newActions,
mutations: newMutations
})
})
}