Estoy creando una aplicación en nuxt.js, uso una tienda para almacenar datos, incluido el usuario que se conecta, y quiero mantener los elementos de conexión del usuario en localStorage. Entonces, para hacer esto, utilicé un complemento que es vuex-persist, del cual aquí está el código.
Aquí está mi tienda/login.js:
export const state = () => ({ user: '' }) export const mutations = { setUser(state, newUser) { state.user = newUser; } } export const getters = { getUser(state) { return state.user } }Aquí está mi complemento/vuex-persist.js:
import VuexPersistence from 'vuex-persist'; export default ({ store }) => { window.onNuxtReady(() => { new VuexPersistence({ key: "vuex", storage: window.localStorage, reducer: state => ({ login: state.login }), }).plugin(store); }); };Entonces esto guarda al usuario en localStorage, por ejemplo:
Pero cuando actualizo la página o cuando abro una nueva página en una nueva pestaña, tengo que volver a conectarme todo el tiempo.
No entiendo por qué porque cuando no coloco una función de reducción en mi complemento, no necesito volver a conectarme constantemente, pero el problema es que no solo guarda al usuario en localStorage.
Gracias por tu ayuda
Vuex-persisted no se mantiene, puede usar vuex-along https://github.com/boenfu/vuex-along más o menos lo mismo, no puedo comentar, es por eso que usar la respuesta.
No conozco el problema con su complemento, ¿tal vez no está registrado correctamente en nuxt.config.js?
// Inside - nuxt.config.js export default { plugins: [{ src: '~/plugins/vuex-persist.js', mode: 'client' }], }o el problema podría ser el uso del complemento en combinación con:
window.onNuxtReady(() => {ya que personalmente nunca necesité onNuxtReady con la carga de complementos/bibliotecas externos y dentro de la documentación de dicho complemento no se menciona.
Sin embargo, podría considerar usar la biblioteca vuex-persistedstate que básicamente hace exactamente lo mismo y nunca tuve ningún problema con eso.
Disculpas por no responder realmente a tu pregunta, pero pensé que tal vez sugerir que la otra biblioteca podría ayudarte a ti o a cualquier otra persona.