keep-alive include exclude 不生效的原因

⚠️ keepalive的include和exclude里面所需要的name是组件的name 并不是路由的name

⚠️如果组件内没有name 需要手动添加才会生效

⚠️如果使用逗号分隔 name 需要在name前面添加空格

版本vue2.0可以直接写name

版本为vue3.0并且使用了<script setup>需要再添加一个<script>并且添加上name 

版本为vue3.2并且使用了<script setup>无需手动添加name,name会自动根据文件名生成

tips:可以使用actived和deactived两个生命周期去判断组件是否被缓存了 如果缓存了会调用actived

路由🌰

//方式1 - 数组
        <router-view v-slot="{ Component }">
          <keep-alive :exclude="['demo','demo2']">
            <component :is="Component" />
          </keep-alive>
        </router-view>
//方式2 -字符串
<router-view v-slot="{ Component }">
    <KeepAlive include="demo, demo2">
      <component :is="Component" />
    </KeepAlive>
</router-view>
//方式3 -正则
<router-view v-slot="{ Component }">
    <KeepAlive :include="/demo|demo2/">
      <component :is="Component" />
    </KeepAlive>
</router-view>

2.0 组件demo:

<script>
export default {
    name:'demo'
}
</script>

3.0 组件demo

<script>
export default{name:'demo'}
</script>
<script setup>
</script>

特别注意:import 需要写在顶层script

特别注意: 正常keepAlive mounted只在第一次执行 再次进入后mounted不再执行

vue3 如果mounted 在增加keepalive之后仍然执行 那么我们可以去掉 key值

就是因为key值不通所以判断 需要重新执行

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值