面试了许多求职者,很多求职者只知其然,而不知所以然,写此文章为广大前端小伙伴指引迷津。纯干货!纯干货!纯干货!
目录
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-alive是Vue提供的一个内置组件,其主要目的是来缓存组件内部状态,避免重新渲染。我们项目中一般用它来缓存路由组件。