vue插槽slot与v-for的混合应用

      插槽slot想必大家都不陌生,官方文档中也做了详细的说明和案例。下面是我在项目中使用的<slot>与v-for混合应用的实例,放在这里供大家参考。

<!-- <charts-wrap>组件模板 -->
<div>
    <slot v-for="(item,index) in list" 
            name="chart"
            :data="item"
            :index="index">
    </slot>
</div>
<!-- 插槽模板 -->
<charts-wrap v-slot:chart="{index,data}">
    <chart :ref="'chart'+index" :chartData="data"></chart>
</charts-wrap>

      为方便理解,我使用不同颜色的框,将应该对应的名称标记出来。相同颜色框内的名称,必须是一致的。

其中:

      绿色框的chart表示<slot>的name属性,与v-slot相对应,才会将插槽内容插入。由于案例中使用for循环,且对循环后的插槽内容没有区分,所以name都设置为“chart”。若不设置name,则默认为“default”。如果需要不同插槽插入不同内容,使用name区分开即可。官网中有案例,在此就不赘述了。

      黄色和灰色框的属性,属于插槽的prop,用于让插槽内容访问到子组件中的数据。案例中使用的是通过解构传入插槽prop的方式。

 

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值