zoukankan      html  css  js  c++  java
  • vue slot+传参

    插槽分为默认插槽和具名插槽:

    默认插槽:

      
    //父组件
    <div> <h3>父组件</h3> <testChild> <div>默认插槽</div> </testChild> </div>

    //子组件
    <div>
    <h4>子组件</h4>
    <slot></slot>
    </div>

    具名插槽:

      注意:具名插槽需要包裹在  template  标签中,否则会报错

    //父组件
    
    <div>
            <h3>父组件</h3>
            <testChild>
                <template v-slot:test>//v-slot: + 插槽名
                    <ul>
                        <li v-for="item in list">{{item.name}}</li>
                    </ul>
                </template>
            </testChild>
        </div>
    
    //子组件
     <div>
            <h4>子组件</h4>
            <slot name="test"></slot> //name="插槽名"
        </div>

    子组件向父组件传参:

    //父组件 
    <div> <h3>父组件</h3> <testChild> <template v-slot:test="data">//具名插槽,v-slot: +插槽名+ ="自定义数据名",子组件所传参数都是其属性 <ul> <li v-for="item in data.list2">{{item.name}}</li> </ul> </template> <template v-slot="dataDefalut">//默认插槽 {{dataDefalut.sName}} </template> </testChild> </div>


    //子组件
    <template>
    <div>
    <h4>子组件</h4>
    <slot name="test" :list2="list2"></slot>
    <slot :sName="name"></slot>
    </div>
    </template>

    <script>
    export default {
    name: "testChild",
    data(){
    return {
    list2:[
    {name:'ccc'},
    {name:'ddd'}
    ],
    name:'name'
    }
    }
    }
    </script>

    结果:

  • 相关阅读:
    区块链中的密码学
    初识nodeJS
    JS或jQuery获取当前屏幕宽度
    jQuery与Zepto的异同
    使用递归解决斐波那契数列的性能问题
    sass高级语法的补充
    sass的高级语法
    栅格 CSS中的循环 媒体查询
    Zepto
    dedecms 留言板中引用模板文件方法
  • 原文地址:https://www.cnblogs.com/gxp69/p/10784299.html
Copyright © 2011-2022 走看看