vuejs创建了hook:window / localstorage未定义

时间:2017-09-01 16:44:11

标签: javascript vue.js local-storage vuex

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

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

我认为我的根组件中创建的钩子是正确的位置。不幸的是,我得到'窗口未定义'。

当我把它放在挂钩中时它起作用。不幸的是,这是迟到的,并显示登录页面几毫秒。

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

1 个答案:

答案 0 :(得分:1)

我会首先尝试删除窗口,因为您不需要编写它 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="content"> <h2>Blessing upon the Bearers of the Throne</h2> <button id="btn">Click</button> <p style="text-align:center">&nbsp; </p> <p style="text-align:center"> <span style="font-size11pt"> <span style="font-family:Calibri,sans-serif">O God, as for the Bearers of Thy Throne, who never flag in glorifying Thee, </span> </span> </p> <p style="text-align:center"> <span style="font-size11pt"> <span style="font-family:Calibri,sans-serif"> <span dir="rtl" lang="AR-SA" style="font-family&quot;Arial&quot;,&quot;sans-serif&quot;">111111111111111111111111111َ </span> </span> </span> </p> </div>

如果这还不够,只需使用此vuex插件https://github.com/robinvdvleuten/vuex-persistedstate,它就可以完全按照零配置执行操作。如果只想保留一个值,可以在插件配置中将其设置为路径。