Vue 3 保持活动的缓存路由

Tal*_*boy 6 html vue.js vue-router vue-component vuejs3

我正在使用 Vue 3 <keep-alive>。当我不使用:key它时,它会缓存(按预期不正确地跨越不同的 URL)。

通过增加

<router-view :key="$route.fullPath" v-slot="{ Component }">
  <keep-alive>
    <component :is="Component" />
  </keep-alive>
</router-view>
Run Code Online (Sandbox Code Playgroud)

我认为,如果缓存键不存在,它只会进行 API 调用,这样当我转到不同的路线并返回时,它不会进行第二次 api 调用。

但是当我:key="$route.fullPath"现在添加时,即使我重新访问相同的 URL,它每次都会进行 API 调用?

Dan*_*Dan 24

在 Vue 3 中,将 放在 thekey<component>而不是<router-view>

<router-view v-slot="{ Component }">
  <keep-alive>
    <component :is="Component" :key="$route.fullPath"></component>
  </keep-alive>
</router-view>
Run Code Online (Sandbox Code Playgroud)

  • 不客气。很难想象您在后续问题中要问什么。您能否以与您的特定设置无关的更通用的方式询问它? (2认同)