javascript - 如何在使用 this.$router.go(-1); 后重新加载 localStorage VueJS

标签 javascript vue.js

这是我的 Login.vue:

mounted() {
    if (localStorage.login) this.$router.go(-1);
},
methods: {
    axios.post(ApiUrl + "/login") {
       ...
    }

    then(response => {
       ...
       localStorage.login = true;
       this.$router.go(0); /* Reload local storage */
    })
}

应用程序.vue:

mounted() {
      axios
          .get("/user")
          .then(response => {                      
               localStorage.user_id = response.data.user.id;
               localStorage.package_id = response.data.user.package_id;
           })
},

项目.vue:

mounted() {
     this.user_id = localStorage.user_id
     this.package_id = localStorage.package_id
}

使用上面的代码,我无法按预期获取 localStorage.user_idlocalStorage.package_id 。但如果我像下面这样改变,它就起作用了。

mounted() {
    const self = this
    setTimeout(function () {
      self.user_id = localStorage.user_id
      self.package_id = localStorage.package_id
      self.getProject();
    },1000)
}

但我认为 setTimeout 在这种情况下不好。有没有办法重构这段代码? 谢谢!

最佳答案

试试这个:在你的根组件(通常是 const app = new Vue({ ... }))中写入以下内容:


import {localStorage} from 'localStorage'; // import your module if necessary
                                            // this is relative to the way you manage your dependencies.

const app = new Vue({

    //...

    data: function() {
        return {
            localStorage: localStorage;
        }
    }
})

现在,每当您想使用localStorage时,请从根组件访问它,如下所示:

this.$root.localStorage

希望这能解决您的问题。

关于javascript - 如何在使用 this.$router.go(-1); 后重新加载 localStorage VueJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59748299/

相关文章:

javascript - 如何使用 $q promise 在 angular js 中并行处理多个(循环内)异步 api 调用?

javascript - 创建带有悬停按钮的 React 列表

javascript - 如何在两个单独的 SVG 图像中填充多个相似的路径?

javascript - 按钮 onclick 事件不起作用

javascript - Highcharts JSON 十进制数据格式问题

JavaScript 关联数组比较

javascript - Laravel 路由的 Javascript 中的全局变量 - 这是个好主意吗?

javascript - 如何遍历模板中的组件对象?

laravel - 从 laravel Blade 到 vue 组件传递路由导致重复输出

vue.js - Vue2 改变嵌套组件中的数据