文档
官网: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
也就是:
版权声明:本文为m0_55155505原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。