vue的keep-alive组件缓存的实例
时间: 2023-09-04 22:14:28 浏览: 118
Vue 的 `keep-alive` 是一个内置组件,它可以将组件缓存起来,避免每次重新渲染。下面是一个使用 `keep-alive` 组件实现缓存的例子:
```vue
<template>
<div>
<button @click="toggle">Toggle</button>
<keep-alive>
<component :is="currentComponent"></component>
</keep-alive>
</div>
</template>
<script>
import ComponentA from './ComponentA.vue';
import ComponentB from './ComponentB.vue';
export default {
components: {
ComponentA,
ComponentB
},
data() {
return {
currentComponent: 'ComponentA'
};
},
methods: {
toggle() {
this.currentComponent = this.currentComponent === 'ComponentA' ? 'ComponentB' : 'ComponentA';
}
}
};
</script>
```
在这个例子中,我们通过 `keep-alive` 包裹了一个动态组件,然后在组件中切换两个不同的子组件。当我们切换子组件时,`keep-alive` 会将前一个子组件缓存起来,避免重新渲染。如果再次切换回之前的子组件,`keep-alive` 会直接从缓存中取出并显示之前的子组件,不需要重新渲染。
需要注意的是,使用 `keep-alive` 组件缓存组件时,被缓存的组件会保留它们的状态和数据。如果需要在缓存后重新渲染组件时重置状态和数据,可以使用 `activated` 和 `deactivated` 生命周期钩子函数。
阅读全文