在 vue.js keep-alive 部分刷新页面

Rit*_*tra 7 vue.js vue-router

我有一个使用 vue-router 的 Vue.js SPA。因为登录后每个页面都需要保持状态(如输入的过滤器/分页)这是使用保持活动完成的:

<keep-alive>
  <router-view/>
</keep-alive>
Run Code Online (Sandbox Code Playgroud)

这很有效,但是当有人注销并再次登录时,由于保持活动状态,我仍然看到相同的过滤器值。

我可以在注销时以某种方式刷新/清除以编程方式保持活动的页面吗?

Ste*_*n-v 6

我认为没有一种简单的方法可以(以编程方式)执行此操作,因此您只有 2 个选项。

选项 1是重置状态,这意味着您在内部跟踪初始状态并监听诸如注销时发出的内容以将组件重置为其初始状态。

选项 2是简单地使用以下内容换出keep-alive组件:

<keep-alive v-if="loggedIn">
    <router-view></router-view>
</keep-alive>

<router-view v-else></router-view>
Run Code Online (Sandbox Code Playgroud)