vue作用域插槽的使用,内存优化

<html>
    <head>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <child>
                <template slot-scope="props">
                    <li>{{props.item}}</li>
                </template>
            </child>
        </div>
    </body>
    <script>
    Vue.component('child',{
        data:function(){
            return{
                list:[1,2,3,4]
            }
        },
        template:`
            <div>
              <ul>
                   <slot v-for="item of list" :item=item></slot>
              </ul>
            </div>
        `
    })//slot作用域插槽用slot来定义,目标标签中用slot-scope来接收循环数据
        var app=new Vue({
            el:'#app',
        
        })
        
    </script>
</html>

下面这个例子来用v-if判断值,用v-once存放内存优化静态显示

<html>
    <head>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <child-one v-if="type==='child-one'"></child-one><!--用v-if来判断type的值-->
            <child-two v-if="type==='child-two'"></child-two>
            <button @click="handleBtnClick">change</button>
        </div>
    </body>
    <script>
    Vue.component('child-one',{
        template:'<div v-once>child-one</div>'//v-once放到内存里面,提高静态内存的效率
    })
    Vue.component('child-two',{
        template:'<div v-once>child-two</div>'
    })
        var app=new Vue({
            el:'#app',
            data:{
                type:'child-one'//命名type的值
            },
            
            methods:{
                handleBtnClick:function(){
                   this.type=this.type==='child-one'?'child-two':'child-one'//用三元运算符来改变type的值
                }
            }
        })
        
    </script>
</html>

标签: 无

发表评论:

whatsapp营销