记一次vue 的keep-alive踩坑之路 —— active和deactivated()函数不执行

26 篇文章 0 订阅

现象:路由頁面被缓存,销毁阶段函数不执行,active和deactivated()函数不执行,进入页面的created函数(创建期函数)执行。

原因:

<template>
  <div id="app"> 
    <keep-alive v-if="$route.meta.keepAlive">
    	<div> //未激活
        	<router-view :class="this.$route.meta.requireAuth===true?'':'tab-bottom'"/>
        </div>
    </keep-alive>
    <div>
    <template>

改正:

<template>
  <div id="app">
    <keep-alive v-if="$route.meta.keepAlive">
        	<router-view :class="this.$route.meta.requireAuth===true?'':'tab-bottom'"/>
    </keep-alive>
    <div>
    <template>
  • <keep-alive>正常生效条件:
    1.只能包裹动态组件,不能包裹div等标签,要想保持状态,就得把那部分封装在一个功能性的组件上。
    2.keep-alive仅支持第一个元素,单节点激活。
    3.一个keep-alive只能在同一时间段内保持一个组件状态,也就是里面不能有两个动态组件
    4.向上滑动后,切换页面再切换回来,要想页面在上一次滑动的地方,路由模式要是 history模式
    vue 官网关于keep-alive
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值