vue2 keep-alive不生效
问题描述
路由中配置keepAlive、组件name唯一、<keep-alive>标签包裹、路由嵌套,都检查了,keep-alive还是不生效,花了我两三个小时的时间折腾
原因
全局搜索<keep-alive>标签,才发现居然有人在layout--componets--AppMain.vue里写了include……
骚操作代码如下:
<template>
<section class="app-main">
<transition name="fade-transform" mode="out-in">
<keep-alive :include="['page1', 'page2', 'page3']">
<router-view :key="key" />
</keep-alive>
</transition>
</section>
</template>
:include="['page1', 'page2', 'page3']"
藏这么深的缓存写法,哎。
解决方式
include删掉,keep-alive改成如下:
<keep-alive>
<router-view :key="key" v-if="$route.meta.keepAlive"/>
</keep-alive>
<router-view :key="key" v-if="!$route.meta.keepAlive"/>