vue插槽

作者: 我背井离乡了好多年 | 来源:发表于2020-07-16 12:35 被阅读0次

    1.插槽即组件里面含有个洞 这个洞需要包裹填充物

    1.给组件中的洞添加name属性,然后整个组件插到填充物上面
    2.插槽的写法就是组件的写法,带上 <dt><slot name="tit">狮子</slot></dt>
    3.新版本的填充物必须由template包裹
    4.新旧版本,洞的写法一样都是 <slot name="tit"> ;填充物的写法不一样
    5.有几个<slot name="tit"> 就必须有几个template

    <tag1 :fatherdata="fatherdata">
            <template slot="tit">老虎</template>
            <template slot="mes">大型猫科动物;毛色浅黄或棕黄色,满身黑色横纹;头圆、耳短,耳背面黑色,中央有一白斑甚显著。</template>
    </tag1>
    
    template:` <dl>
          <dt><slot name="tit">狮子</slot></dt>
          <dd><slot name="mes">是一种生存在非洲与亚洲的大型猫科动物</slot></dd>
    </dl>`
    

    2.作用域插槽

    1.把组件中的data数据传给 填充物(填充物需要拿东西接收一下)
    2.在洞洞<slot name="age" :obj="obj"></slot>这里进行传值,洞与自己的填充物相对应
    3.旧版本的使用方式

    <tag1>
            <template slot="tit" slot-scope="slotProps">
              {{slotProps.txt1}}
            </template>
            <template slot="mes"></template>
    </tag1>
    
    

    3.新版本的使用方式
    填充物可以选择不接收数据,就不加等号即可

    <tag1>
            <template v-slot:tit="slotProps">
              {{slotProps.txt1}}
            </template>
            <template v-slot:mes></template>
    </tag1>
    

    4.然后新旧版本,洞子的写法都一样

    var tag1mes = {
          data:function(){
            return {
              txt1:'我是子组件里的数据: 猫头鹰'
            }
          },
          template:` <dl>
          <dt><slot name="tit" v-bind:txt1="txt1">狮子</slot></dt>
          <dd><slot name="mes">是一种生存在非洲与亚洲的大型猫科动物</slot></dd>
          </dl>`
    }
    

    相关文章

      网友评论

          本文标题:vue插槽

          本文链接:https://www.haomeiwen.com/subject/sarphktx.html