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>`
}
网友评论