一、前言
插槽在开发中的使用频率不算低,插槽的使用能帮助我们更好的个性化开发。
二、分类
1、默认插槽
在子组件中定义<slot></slot>即可
2、具名插槽
在子组件中定义<slot name="xxx"></slot>,其中xxx即为插槽的名字
3、作用域插槽
在子组件中定义<slot :aaa="xxx"></slot>,其中aaa为动态属性名,xxx为data中的数据名
三、案例
1、默认插槽
子组件:slot中的内容,当父组件不传内容时显示
<template>
<div>
<slot>没有内容时我显示</slot>
</div>
</template>
父组件:<demo/>为定义的子组件名称
<demo>
<h2>默认插槽</h2>
</demo>
2、具名插槽
子组件:
<div>
<slot name="one">没有内容时我显示</slot>
<slot name="two">没有内容时我显示</slot>
</div>
父组件:
<demo>
<h2 slot="one">我在使用具名插槽1</h2>
<h2 slot="two">我在使用具名插槽2</h2>
</demo>
3、作用域插槽
子组件:传参给父组件,:msg绑定动态属性,等号后面的为data中的数据名
<template>
<div>
<slot :msg="msg">没有内容时我显示</slot>
</div>
</template>
父组件:使用slot-scope接收子组件的参数,其中等号后面的名称可以随便定义。但是由于参数格式的原因,所以在使用的时候需要用点.才能获取到真正的数据
<demo>
<h2 slot-scope="content">{
{content.msg}}</h2>
</demo>
不用点的时候,直接用content,页面显示如下
4、注意
① 当使用默认插槽时,父组件调用几次,页面就会显示几次
<demo>
<h2>默认插槽1</h2>
</demo>
<demo>
<h2>默认插槽2</h2>
</demo>
②当使用具名插槽时,父组件不指定子组件插槽名称,则不会正确显示父组件内容,它会认为你没有用插槽,会显示子组件插槽中的具体内容。
四、其他
以上就是插槽的所有介绍,我们一起进步。