29. Migration from Vuex 0.6.x to 1.0(从Vuex 0.6迁移。x 1.0)
从Vuex 0.6.x迁移到1.0
Vuex 2.0已发布,但本指南仅涵盖迁移到1.0?这是一个错字吗?此外,它看起来像Vuex 1.0和2.0同时发布。这是怎么回事?我应该使用哪一个和Vue 2.0兼容?
Vuex 1.0和2.0:
- 完全支持Vue 1.0和2.0
- 将在可预见的将来保持不变
但是他们的目标用户略有不同。
对于那些正在开始新项目或希望处于客户端状态管理尖端的人来说,Vuex 2.0
对API进行了彻底的重新设计和简化。本迁移指南不包含此内容
,因此如果您想了解更多信息,请查看Vuex 2.0
文档。
Vuex 1.0
大多是向后兼容的,所以升级需要很少的更改。推荐用于那些拥有大量现有代码库或想要最平稳升级到Vue 2.0的用户。本指南致力于促进这一过程,但仅包括迁移说明。有关完整的使用指南,请参阅Vuex 1.0
文档。
store.watch 用String属性路径替换
store.watch
现在只接受功能。例如,你将不得不取代:
store.watch('user.notifications', callback)
有:
store.watch(
// When the returned result changes...
function (state) {
return state.user.notifications
},
// Run this callback
callback
)
这使您可以更全面地控制您希望观看的反应性属性。
升级路径
在您的代码库上运行迁移助手以查找store.watch
以字符串作为第一个参数的示例。
Store的事件发射器已移除
该store实例不再公开事件发射器接口(on
,off
,emit
)。如果您之前将商店用作全局事件总线,请参阅此部分以获取迁移说明。
而不是使用这个接口来观察商店本身发出的事件(例如store.on('mutation', callback)
),store.subscribe
引入了一种新方法。插件内的典型用法是:
var myPlugin = store => {
store.subscribe(function (mutation, state) {
// Do something...
})
}
有关更多信息,请参阅插件文档示例。
升级路径
运行迁移助手在你的代码库找到store.on
,store.off
和store.emit
的例子。
Middlewares取代
中间件被插件取代。插件是一个接收商店作为唯一参数的函数,并且可以监听存储器中的突变事件:
const myPlugins = store => {
store.subscribe('mutation', (mutation, state) => {
// Do something...
})
}
有关更多详细信息,请参阅插件文档。
升级路径
在代码库上运行迁移助手以查找middlewares
商店中的选项示例。