路由组件的缓存

99 阅读1分钟

路由组件的缓存

当我们使用vue-router去进行组件切换的时候,组件会频繁进行创建和销毁,但是在实际应用中,我们需要对组件中的部分数据进行缓存,不希望数据丢失。所以这个时候出现了路由组件的缓存,先看以下没有对数据缓存的结果

在App.vue的代码如下

<template>
  <div class="container">
    <button @click="toBar">Bar</button>
    <button @click="toFoo">Foo</button>
    <router-view></router-view>
  </div>
</template>

微信截图_20220801214301.png

在进行组件跳转的时候,我们输入框的数据会丢失,那么我们可以通过vue的内置组件keep-Alice去保持组件的状态,使他不会被销毁。代码如下:

<template>
  <div class="container">
    <button @click="toBar">Bar</button>
    <button @click="toFoo">Foo</button>
    <keep-alive>
    <router-view></router-view>
    </keep-alive>
  </div>
</template>

在通过keep-Alice内置组件之后,我们所有路由渲染的组件都会被保留状态,这往往不是我们想要达到的效果,所以我们新加了一个include属性去进行一个指定组件的状态保持,只需要添加include="组件名"

<template>
  <div class="container">
    <button @click="toBar">Bar</button>
    <button @click="toFoo">Foo</button>
    <keep-alive include="Bar">
      <router-view></router-view>
    </keep-alive>
  </div>
</template>