Vue缓存组件 keep-alive

父组件:

<template>
    <div class="box">
        <h3>index父组件</h3>

        <!-- 动态组件的切换 -->
        <!-- <button @click="changeCom">动态显示组件</button> -->
        <!-- 1.使用is实现动态组件 -->
        <!-- <div :is="comname"></div> -->

        <!-- 2.使用传统的方式进行动态组件切换 -->
        <button @click="isShow = !isShow">动态显示组件</button>
        <!-- keepalive对当前这个组件进行了缓存,不会在进场创建和销毁 -->
        <keep-alive>
            <v-one v-if="isShow"></v-one>
            <v-two v-else></v-two>
        </keep-alive>
    </div>
</template>

<script>
import  vOne  from "./One.vue"
import  vTwo  from  "./Two.vue"
export default {
    components:{
        vOne,vTwo
    },
    data(){
        return{
            comname:"vOne",
            isShow:true
        }
    },
    methods:{
        changeCom(){
            this.comname = this.comname == 'vOne' ? 'vTwo' :'vOne'
        }
    }
}
</script>

<style scoped>

</style>

子组件:

<template>
    <div class="box">
        <h3>one子组件</h3>
    </div>
</template>

<script>
export default {
    created(){
        console.log('one组件创建完成');
    },
    // 缓存组件特有的生命周期函数
    // 激活钩子函数,进入组件的时候触发
    activated(){
        console.log('开启定时器');
        
    },
    // 销毁的钩子函数:离开的时候触发
    deactivated(){
        console.log('关闭定时器');
        
    },
    destroyed(){
        console.log('one组件销毁完成'); 
    }
}
</script>

<style scoped>

</style>

这样就实现简单的keep-alive缓存了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值