vue.js - 刷新 vue.js keep-alive 部分中的页面
问题描述
我有一个使用 vue-router 的 Vue.js SPA。因为登录后每个页面都需要保持状态(如过滤器/分页输入)这是使用keep-alive完成的:
<keep-alive>
<router-view/>
</keep-alive>
这很好用,但是当有人注销并再次登录时,由于保持活动状态,我仍然看到相同的过滤器值。
我可以在注销时以某种方式以编程方式刷新/清除保持活动状态的页面吗?
解决方案
我认为没有一种简单的方法可以做到这一点(以编程方式),所以你有两个选择。
选项 1是重置状态,这意味着您在内部跟踪初始状态并监听诸如注销时发出的消息以将组件重置为其初始状态。
选项 2是使用以下内容简单地换出keep-alive
组件:
<keep-alive v-if="loggedIn">
<router-view></router-view>
</keep-alive>
<router-view v-else></router-view>
推荐阅读
- windows-10 - Pgadmin4 不会显示在 Windows 10 系统托盘上
- linux - 有没有办法通过 SSH 隧道转发串行控制台访问?
- flutter - 如何在 Flutter 应用程序中通过 API 调用加载和播放音频文件?
- unreal-engine4 - AddControllerPitchInput 使网格旋转
- python - 通过 Python 列出来自网站的页面(带有链接)
- css - 如何创建这个 css 图案背景?
- flutter - 尝试更新您的 pubspec.yaml 以将最小 SDK 约束设置为 2.14.0 或更高版本,然后运行“pub get”
- c - 结构中成员的长度
- devextreme - 如何使用 jquery Devextreme 在 cellTemplate 中格式化数字?
- android - 当按钮本身被保存在 Android Studio 中时,如何更改按钮图标的颜色?