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实例不再公开事件发射器接口(onoffemit)。如果您之前将商店用作全局事件总线,请参阅此部分以获取迁移说明。

而不是使用这个接口来观察商店本身发出的事件(例如store.on('mutation', callback)),store.subscribe引入了一种新方法。插件内的典型用法是:

var myPlugin = store => { store.subscribe(function (mutation, state) { // Do something... }) }

有关更多信息,请参阅插件文档示例。

升级路径

运行迁移助手在你的代码库找到store.onstore.offstore.emit的例子。

Middlewares取代

中间件被插件取代。插件是一个接收商店作为唯一参数的函数,并且可以监听存储器中的突变事件:

const myPlugins = store => { store.subscribe('mutation', (mutation, state) => { // Do something... }) }

有关更多详细信息,请参阅插件文档

升级路径

在代码库上运行迁移助手以查找middlewares商店中的选项示例。