Vue2系列-keep-alive

181 阅读1分钟

面试了许多求职者,很多求职者只知其然,而不知所以然,写此文章为广大前端小伙伴指引迷津。纯干货!纯干货!纯干货!

目录

keep-alive

什么是keep-alive?

答:是Vue提供的一个内置组件。

keep-alive的作用?

答:来缓存组件内部状态,避免重新渲染。

keep-alive的使用场景?

答:缓存路由组件、缓存动态组件。

keep-alive的使用方式?
  • include:匹配的 路由/组件 会被缓存
  • exclude:匹配的 路由/组件 不会被缓存
// 缓存路由组件
<keep-alive include='a'>
  <router-view></router-view>
</keep-alive>

// 缓存动态组件
<!-- 基本 -->
<keep-alive include="a,b">
  <component :is="view"></component>
</keep-alive>

<!-- 多个条件判断的子组件 -->
<keep-alive>
  <comp-a v-if="a > 1"></comp-a>
  <comp-b v-else></comp-b>
</keep-alive>
钩子函数

activated: 第一次进入缓存路由/组件

deactivated: 组件被停用(离开路由)时调用(使用了keep-alive就不会调用beforeDestroy和destroyed,因为组件没被销毁,被缓存起来了,这个钩子可以看作beforeDestroy的替代。

面试大白话

答:首先,keep-aliveVue提供的一个内置组件,其主要目的是来缓存组件内部状态,避免重新渲染。我们项目中一般用它来缓存路由组件。

小白也是新手面试官,欢迎领导莅临指导工作,提出建议,小白不胜感激,不喜勿喷,点赞收藏随机送程序媛小姐姐一枚哦!!!