在vue中,有时我们想让一些组件keep-alive,还有一些不用keep-alive,这个时候怎么办呢,我们就需要用判断来加载keep-alive。
例如:
// router.js
{
path: "/driving_licence",
component: () => DrivingLicence,
meta: {
isShowFooter: true,
title: "驾照查分"
}
},
{
name: "ticket",
path: "/ticket",
component: () => Ticket,
meta: {
isShowFooter: true,
title: "全国罚单查询",
isKeep: true // 用来记录当前页面是否要使用keep-alive
}
}
// app.vue
<template>
<div id="app">
<!-- 页面中使用两个router-view,其中一个使用keep-alive包裹,在给每个加上v-if属性即可 -->
<keep-alive>
<router-view v-if="$route.meta.isKeep"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.isKeep"></router-view>
</div>
</template>
当引入keep-alive的时候,页面第一次进入,钩子的触发顺序created-> mounted-> activated,退出时触发deactivated。当再次进入(前进或者后退)时,只触发activated。我们就可以在不同的钩子函数内执行相关操作。