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