Migración de Vuex 0.6.x a 1.0

Se liberó Vuex 2.0, pero esta guía solo cubre la migración a 1.0? ¿Es eso un error tipográfico? Además, parece que Vuex 1.0 y 2.0 se lanzaron simultáneamente. ¿Que está pasando? ¿Cuál debo usar y cuál es compatible con Vue 2.0?

Tanto Vuex 1.0 y 2.0:

Sin embargo, tienen un objetivo de usuarios ligeramente diferentes.

Vuex 2.0 es un rediseño y simplificación radical de la API para aquellos que están comenzando nuevos proyectos o desean estar a la vanguardia en el manejo de estado client-side. No está cubierto por esta guía de migración., por lo que debe revisar la documentación de Vuex 2.0 si quiere aprender más sobre esto.

Vuex 1.0 En su mayoría es compatible con versiones anteriores, por lo que requiere muy pocos cambios para migrar. Se recomienda para aquellos con grandes cantidades de códigoo que desean una migración suave en pequeños pasos antes de Vue 2.0. Esta guía está dedicada a facilitar ese proceso, pero solo incluye notas de migración. Para la guía de uso completa, vea la documentación de Vuex 1.0.

store.watch con Propiedad String sustituido

store.watch Ahora solo acepta funciones. Entonces, por ejemplo, tendrías que sustituir:

store.watch('user.notifications', callback)

por:

store.watch(
// Cuando el resultado devuelto cambia...
function (state) {
return state.user.notifications
},
// Ejecutar este callback
callback
)

Esto le da un control más completo sobre las propiedades reactivas que le gustaría observar.

Cómo proceder?

Ejecutar el asistente de migración sobre su código para encontrar casos destore.watch con un string como primer argumento.

Emisor de Eventos del Store removido

La instancia del store ya no expone la interfaz del emisor de eventos (on, off, emit). Si anteriormente estaba usando la tienda como un bus de eventos global, vea esta sección para instrucciones de migración.

En lugar de utilizar esta interfaz para observar los eventos emitidos por el propio store (ej: store.on('mutation', callback)), un nuevo método store.subscribe es presentado. El uso típico dentro de un plugin sería:

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

Ver ejemplo the plugins docs para más información.

Cómo proceder?

Ejecutar el asistente de migración sobre su código para encontrar casos destore.on, store.off, y store.emit.

Middlewares sustituidos

Los middlewares fueron sustituidos por plugins. Un plugin es una función que recibe el store como único argumento y puede suscribirse al evento de mutación en el store:

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

Para más detalles, ver la documentación de plugins.

Cómo proceder?

Ejecutar el asistente de migración sobre su código para encontrar casos donde se utilizó middlewares en un store.