当前位置: 首页 > 知识库问答 >
问题:

使用vue路由器重新加载组件

欧阳楚
2023-03-14

我有一个关于Vuejs和Vue路由器的项目。当用户登录系统时,服务器返回一个带有令牌、用户名和名字的Json文件,该文件存储在localstorage中,以便在以下请求中使用。第一个名称在布局中用于在导航栏中显示欢迎消息。注销后,localstorage被清除,问题就在这里,当其他用户在消息welcome not reload中使用新的名字付费时。

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

共有1个答案

万修为
2023-03-14

LocalStorage不是反应性的,因此computed属性不会对LocalStorage的更改作出反应。有多种方法可以避免这种情况,但最简单的方法是监视内部属性并将值持久化到localStorage。

一种正确的方法是使用Vuex(Vue的官方状态管理)将数据存储到Vuex存储中。然后有一个Vuex插件将所有存储或其部分持久化到本地或会话存储中。Vuex存储是被动的,因此您可以在计算属性中查看存储的更改。

 类似资料:
  • 我有几个路线,每个路线装载3个组件。所有管线上的两个组件都相同。当我在这些路由之间移动时,我希望传递新数据,在组件的某个初始化事件上,我希望填充该组件的数据,以便它反映在UI上。我还想重新触发正在加载的组件的引导动画。我该怎么做呢。因为现在,我不知道在组件的生命周期中,我将在哪里获取数据,并使用这些新数据重新提交组件。具体来说,在myapps/1和/newapp/I中有一个主视图组件和一个侧栏组件

  • 我有一个显示多条路线的组件(步骤1、步骤2、步骤3…)一个接一个。我导航并传递属性,如 路线定义为 这很有效,直到我重新加载页面/路由,因为数据丢失。所以我有点想在加载组件后从父级获取数据。 我的一个想法是使用本地存储,但这感觉不对。 我是Vue的新手,我想问一下这里的最佳实践是什么。是否像这里描述的那样使用vue路由器重新加载组件?请给我一个提示。

  • 我在这个拉请求中看到: > 重新加载当前路径并再次调用数据钩子 但是当我尝试从Vue组件发出以下命令时: 我得到这个错误: 我搜索了文档,但没有找到任何相关的内容。vue/vue路由器是否提供类似的功能? 我感兴趣的软件版本有: 另外,我知道是备选方案之一,但我正在寻找本机Vue选项。

  • 我希望使用相同的路由路径,根据用户角色为我的用户加载稍微不同的视图。 以前,我已经加载了基于当前域的不同路由: 这种方法只依赖于子域,子域在创建时可用,因此所有内容都可以是同步的。我必须对用户进行身份验证,根据其角色加载正确的路由,然后导出路由器以初始化vue应用程序。 理想情况下,我可以加载基于用户角色的,,,其中可以包含角色的所有路由定义。 我正在使用Feathers-vuex,但我似乎不能等

  • 我已经设置了react路由器和一个组件来呈现一些页面组件。我的所有组件都呈现相同的布局(目前,稍后将是参数化的)。我的页面组件将内容“注入”到布局中,因此我不能让布局组件包装我的外部开关组件。它必须用作页面组件中的子级。 即使最终的html呈现与布局框架相同(它仅在布局的插槽部分内不同),react也会卸载并重新装载整个布局树。 我能理解重新渲染整棵树的反应。React会看到不同的顶部组件(每个位

  • 我有一个问题,看起来很简单,但现在不那么简单了(对我来说): 我已使用Vue cli(路由器、VueX、PWA)设置了一个Vue项目。我一如既往地设置了一些路由(按照文档中的建议)和VueX中的一些状态字段: 在我的视图/组件中,我在实例上使用方法,以编程方式死记硬背,如下所示: ,其中是等待的