vue slot插槽

单个插槽(默认插槽)、具名插槽、匿名插槽

 

(1)单个插槽:<slot></slot>

(2)具名插槽可以在一个组件中出现N次。出现在不同的位置

在父组件中:

<div slot="name1">...</div> 或者 <template slot="name1"></template>

<div slot="name2">...</div> 或者 <template slot="name2"></template>

在子组件中:

<slot name="name1"></slot>

<slot name="name2"></slot>

(3)作用域插槽 | 带数据的插槽

因为单个插槽和具名插槽不绑定数据,所以父组件提供的模板要既包括样式由包括内容的

但有时我们需要获取到子组件提供的一些数据,那么作用域插槽就排上用场了。

“俗”一点的解释:

父组件:

<child-tem>

<div slot-scoped="datas"> //这里的datas接收的就是子组件中name为chacao的传递的数据

{{data.name}},{{data.age}} 

</div>

或者:

<template v-slot:default="user">{{user.data.username}}</template>

也可以不书写 default 关键字,默认就是假定对应默认插槽

<template v-slot="user">{{user.data.username}}</template>

</child-tem>

子组件:

在子组件中创建 slot 并通过 v-bind 绑定数据 prop 的形式传入数据

<div>

<slot name="chacao" name="lily" age="3" :data="data"></slot>

使用 v-slot 绑定一个命名空间 user,这样就可以通过 user 对象引用到子组件中传入的数据了

与具名插槽配合时,需要明确书写对应的命名空间:

	
<template #:one="user">{{user.data.username}}</template>
<template #:another="user">{{user.data.username}}</template>
# 代表 v-slot 的缩写,缩写在有参数的情况下才会生效

</div>

<script>
export default {
data(){
  return {
    data:[1,2,3]
   }
 }
}
</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值