vue3笔记六(slot插槽)

1、具名插槽使用

// 子组件
<template>
  <div>
    <slot name="left"></slot>
    <slot></slot>
    <slot name="right"></slot>
  </div>
</template>

// 父组件使用
<template>
    <template v-slot:left>
      <div>左边数据</div>
    </template>
    <template v-slot>
      <div>中间数据</div>
    </template>
    <template v-slot:right>
      <div>右边数据</div>
    </template>
</template>

// 插槽简写
<template>
    <template #left>
      <div>左边数据</div>
    </template>
    <template #default>
      <div>中间数据</div>
    </template>
    <template #right>
      <div>右边数据</div>
    </template>
</template>

2、作用域插槽

子组件绑定参数,传递父组件slot使用

// 子组件
<template>
  <div>
    <slot name="left"></slot>
    <slot :data="list"></slot>
    <slot name="right"></slot>
  </div>
</template>

<script setup lang="ts">
  const list = [ 1, 2, 3 ]
</script>

// 父组件
<template>
    <template v-slot:left>
      <div>左边数据</div>
    </template>
    <template v-slot="{ data }">
      <div>{{ data }}</div>
    </template>
    
	<!--  <template #default="{ data }">-->
	<!--    <div>{{ data }}</div>-->
	<!--  </template>-->
	
    <template v-slot:right>
      <div>右边数据</div>
    </template>
</template>

3、动态插槽

// 父组件
<template>
    <template #[site]>
      <div>那边的数据了???</div>
    </template>
</template>

<script setup lang="ts">
  import { ref } from 'vue'
  const site = ref('right')
</script>

原文链接:https://xiaoman.blog.csdn.net/article/details/122904105

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值