vuejs 创建的钩子:window/localstorage 未定义

vuejs created hook: window/localstorage is not defined

我想将经过身份验证的用户保存到本地存储,并在下一页加载时将它们加载到 vuex 中:

created () {
    let user = window.localStorage.getItem('user')
    if(user) {
        this.setUser(JSON.parse(user))
    }
}

我认为在我的根组件中创建的挂钩是执行此操作的正确位置。不幸的是我得到 'window is not defined'.

当我把它放在已安装的挂钩中时它会起作用。不幸的是,这太晚了,登录页面显示了几毫秒。

我应该把这个逻辑放在哪里?

我会先尝试删除 window,因为您不需要这样写 let user = localStorage.getItem('user')

如果这还不够,只需使用这个 vuex 插件 https://github.com/robinvdvleuten/vuex-persistedstate 它可以用零配置完全满足您的需求。如果你只想保留一个值,你可以在插件配置中将其设置为路径。