Vue 动态组件 和 v-once 指令

<body>
    <div id='root'>
        <!-- 动态组件:它会根据is里面数据type的变化,自动的加载不同的组件 -->
        <component :is="type"></component>        
        <!-- <child-one v-if="type === 'child-one'"></child-one>
        <child-two v-if="type === 'child-two'"></child-two>
         -->

        <button @click="handleBtnClick">change</button>
    </div>

    <script>
       
        /*
         两个组件频繁的创建和销毁  耗费性能 使用v-once 两个组件被渲染后就放到内存中了 
         此时再次点击 change 就不需重新创建 组件了 而是从内存中直接取出之前创建的组件即可 这样性能更高一些
        */
        Vue.component('child-one',{
            template:'<div v-once>child-one</div>' 
        })

        Vue.component('child-two',{
            template:'<div v-once>child-two</div>'
        })

        var vm =new Vue({
            el:'#root',
            data:{
                type:'child-one'
            },
            methods: {
                handleBtnClick:function(){
                    this.type=(this.type === 'child-one' ?
                        'child-two':'child-one');
                }
            },
              
        })
    </script>

</body>

在这里插入图片描述
点击change:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值