• vue作用域插槽示例


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>作用域插槽具有代表性的实例</title>
    </head>
    <body>
    <div id="mylist">
        <my-awesome-list :items="items">
            <template slot="item11" scope="props1">
                <li class="my-fancy-item">
                    {{props1.text}}
                </li>
            </template>
        </my-awesome-list>
    </div>
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
    <script>
        var child={
                props:["items"],
                template:'
                <ul>
                   <slot name="item11"
                         v-for="item in items"
                         :text="item.text">
                   </slot>
                </ul>
            '
        };
        new Vue({
            el:"#mylist",
            data:{
                items:[
                    {text:'这是作用域插槽具有代表性的实例'},
                    {text:'这是作用域插槽具有代表性的实例2'},
                    {text:'这是作用域插槽具有代表性的实例3'}
                ]
            },
            components:{
                'my-awesome-list':child
            }
        })
    
        /*分析
    
        子组件:
         <ul>
             <slot name="item11"-----------------具名slot 给父组件替换的地方
                 v-for="item in items"---取出其中的一个item
                 :text="item.text">    ---props1:作用域插槽,传递给父组件,
             </slot>
         </ul>
    
        父组件:
         <my-awesome-list :items="items">-----------------通过props属性传递items数据给子组件
             <template slot="item11" scope="props1">------------item11:具名slot 替换子组件的数据,---props1:作用域插槽,子组件传来,
                 <li class="my-fancy-item">
                     {{props1.text}}
                 </li>
             </template>
         </my-awesome-list>
    
        */
    </script>
    </body>
    </html>
    View Code

    分析写在注释里了

    下面是对比 不用作用域插槽的情况,也就是普通列表渲染

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>作用域插槽具有代表性的实例</title>
    </head>
    <body>
    <div id="mylist">
        <my-awesome-list :items="items">
    
        </my-awesome-list>
    </div>
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
    <script>
        var child={
                props:["items"],
                template:'
                <ul>
                   <slot name="item11"
                         v-for="item in items"
                         :text="item.text">
                        <li> {{item.text}}</li>
                   </slot>
                </ul>
            '
        };
        new Vue({
            el:"#mylist",
            data:{
                items:[
                    {text:'这是作用域插槽具有代表性的实例'},
                    {text:'这是作用域插槽具有代表性的实例2'},
                    {text:'这是作用域插槽具有代表性的实例3'}
                ]
            },
            components:{
                'my-awesome-list':child
            }
        })
    
    
    </script>
    </body>
    </html>
    

      

  • 相关阅读:
    手动安装mysql-5.0.45.tar.gz
    Hadoop2.5.2+HA+zookeeper3.4.6详细配置过程
    大数据分析之技术框架整理
    docker安装
    CentOS 6.8安装Docker V1.0
    处理百万级的数据
    剑指 Offer 32
    剑指 Offer 32
    剑指 Offer 32
    剑指 Offer 31. 栈的压入、弹出序列
  • 原文地址:https://www.cnblogs.com/WhiteHorseIsNotHorse/p/6437407.html
Copyright © 2020-2023  润新知