【vue】插槽

文档

官网:https://v2.cn.vuejs.org/v2/guide/components-slots.html
尚硅谷视频:https://www.bilibili.com/video/BV1Zy4y1K7SH?p=102

默认插槽

我的理解就是:子组件留了一块可以在父组件里面配置的片段

使用:
子组件定义一个插槽:
在这里插入图片描述
父组件中告诉子组件用什么替换<slot></slot>
在这里插入图片描述

具名插槽

具名插槽可以让我们在子组件中定义多个插槽

使用:
子组件中定义插槽,并用name属性区分不同的插槽
在这里插入图片描述
一个不带 name 的 <slot> 出口会带有隐含的名字“default”。
父组件中通过v-slot:xx(其中,xx是子组件中slot的属性值) 向指定插槽插入内容:
在这里插入图片描述
中间的两个会放在没有name属性的slot中

注意:
v-slot 只能添加在 <template>上,如果想要放在其他地方,可以用slot属性,下图展示了两种写法:
在这里插入图片描述
需要注意的是,slot的属性值写在双引号中!
另外,上图中两个只能用其中的一个,如果两个同时使用,则只会展示第二个!

作用域插槽

用于父组件需要用到子组件中的数据
在这里插入图片描述

例如:
子组件中定义了一个插槽:
在这里插入图片描述

父组件想要修改slot处显示的值,但是user数据在子组件中,父组件无法直接获得;
我们可以通过在子组件中绑定属性来向父组件传值!

例如下图中,我们把子组件中user通过user属性传给插槽的使用者(父组件)
在这里插入图片描述
父组件中取值:
在这里插入图片描述
值得注意的是,取到的值是一个对象,它的key是子组件定义的属性,value才是真正传的值,因此,上图中通过slotProps.user来取子组件传过来的user
也就是:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_55155505/article/details/127285830