javascript - 使用 vue-router 重新加载组件

标签 javascript node.js vue.js components vue-router

我有一个使用 Vuejs 和 Vue-Router 的项目。当用户在(登录)系统中付款时,服务器返回一个包含 token 、用户名和名字的 Json 文件,该文件存储在 localstorage 中以供后续请求使用。名字在布局中使用,用于在导航栏中显示欢迎消息。注销后,本地存储被清除,问题就在这里,当其他用户在欢迎消息中付款时,不会使用新的名字重新加载。

<v-chip>{{bienvenida}}</v-chip>
<小时/>
computed: {
  bienvenida() {
    const user = JSON.parse(localStorage.getItem("user"));
    return user ? `Bienvenido ${user.firstName}` : "";
  }
}

最佳答案

LocalStorage 不是响应式的,因此计算属性不会对 localStorage 的更改使用react。有various ways规避这个问题,但最简单的方法是观察内部属性并将值也保存到 localStorage。

执行此操作的一种正确方法是使用 Vuex (Vue 的官方状态管理)将数据存储到 Vuex 存储。那么就有a Vuex plugin将所有存储或部分存储保留在本地或 session 存储中。 Vuex 存储是响应式的,因此您只需在计算属性中观察存储的更改。

关于javascript - 使用 vue-router 重新加载组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53468414/

相关文章:

javascript - 未发送自定义事件参数

javascript - 如何使用 Lodash 对 JSON 数据进行子级过滤

javascript - Handlebars 无法识别助手

node.js - 如何在 Windows 中捕获 Electron 应用程序的标准输出流?

javascript - Vue酒树未加载数据

javascript - 找不到导出——但名称仍然有效

javascript - Ajax jQuery 从先前的查询中检索数据

javascript - 如何从php循环获取值到div

node.js - Stream 停止在 Node Child_Process Spawn 内使用 FFMPEG 工作

javascript - 如何通过单击选择元素的选项项来触发操作(Vue.js)?