vue会话存储从另一个页面检索值

时间:2017-11-04 09:47:43

标签: vue.js

我将会话值存储在login.html

axios.post(this.url,data)
     .then( function (response ) {
         if(response.data.success){
             window.location.href = "http://localhost/dairyweb/index.html"
             sessionStorage.setItem('email',this.email)

         }else {
             alert(response.data.message)
         }
     }.bind(this)).catch(function (error) {
    // bind to initialize an object
 })

在index.html上,我想要检索值并使用它但不能正常工作

computed: {
            userType (){
                return sessionStorage.getItem('email')
            }
        }

这是检索的方式

{{userType}}

这不适用于下一页。没有错误只是沉默

2 个答案:

答案 0 :(得分:1)

您还可以查看使用postmessages的可能性。然后在*存储更改发生时触发它。

http://blog.teamtreehouse.com/cross-domain-messaging-with-postmessage

您还可以从选项卡到选项卡交换存储数据。

http://blog.guya.net/2015/06/12/sharing-sessionstorage-between-tabs-for-secure-multi-tab-authentication/

我发布此评论作为评论,因为它不是一个完整的答案,但我没有足够的分数,抱歉。

答案 1 :(得分:0)

Vue中的sessionStorage没有明确地绑定到存储它的窗口,这就是为什么它没有被正确保存。

您需要使用window对象: window.sessionStorage.setItem('email',this.email)旁边return window.sessionStorage.getItem('email')

或者,您可以使用外部程序包将本地存储绑定到Vue对象,以便从this.$ls.set()调用this

https://www.npmjs.com/package/vuejs-local-storage