KeepAlive保活

APP.vue
//创建三个子页面,第一个写四个input的check勾选框,然后其他两页面也搞几个勾选
//只做contact页面的保活
<template>
    <div>
        <div>
            <router-link to="/">Hone</router-link>
            <router-link to="/about">About</router-link>
            <router-link to="/contact">Contact</router-link>
        </div>
        //组件被路由切换之后,会自动销毁,来节省内存
        //keep-alive:在此标签中的组件,将不会销毁
        //展示meta里有keepALive的组件
        <keep-alive v-if="$route.meta.keepAlive">
            <router-view />
        </keep-alive>
        //展示meta里没有keepALive的组件
        <router-view v-if"!$route.meta.keepAlive" />
    </div>
</template>
<script>
import MyCom from './components/MyCom.vue'
   export default{
      components:{MyCom}
      data(){
        
      },
      methods:{
         
      }
   }
</script>
index.js路由
//keep-alive的区别对待
//放在keep-alive中的组件,路由切换时不会被销毁,需要浪费额外的内存
//实际项目中,一个项目有很多页面,并非都要保持活动
const routes=[
    {
        path:'/contact',
        name:'Contact',
        //自定义数据:元数据
        meta:{
            //属性名随便起
            keepAlive:true        
        }
        component:()=>import('../views/Contact.vue')    
    },
     {
        path:'/about',
        name:'About',
        component:()=>import('../views/About.vue')    
    },
     {
        path:'/home',
        name:'Home',               
        component:()=>import('../views/Home.vue')    
    }            
]
保活组件的生命周期
//比喻:组件->怀孕->出生->更新->死了
//开始创建->创建完毕->开始挂载->挂载完毕->开始更新->更新完毕->开始销毁->销毁完毕
//如果组件被keep-alive保活了,则具有两个新的周期
deactivated(){
   console.log('deactivated:非激活') 
},
activated(){
    //active:激活
    //保持活动,不会销毁,而是激活与不激活
    console.log('activated:激活')
    //希望页面显示时,立刻刷新,就用这个,例如购物车勾选好物品后切走再回来还保持勾选
}
点到Contact激活
点到Home和About非激活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值