Vue3中引用的组件如果使用了插槽,如何做到引用的组件不显示某些元素

某些场景中:比如vant的van-search组件;可以使用提供好的icon和按钮,也可以自定义配置;实现方式如下:

插槽写法如下:

<template>
  <div>
    <div v-if="!$slots.default">
      <!-- 不使用默认插槽时显示的数据 -->
      <p>这是没用插槽时显示的数据</p>
    </div>

    <div v-if="$slots.default">
      <!-- 使用默认插槽显示的数据 -->
      <slot></slot>
    </div>

    <!-- 一些其它的内容,可以控制显示隐藏 -->
    <div v-if="!hideExtra">
      <p>这是一些其它的数据</p>
    </div>
  </div>
</template>

<script setup>
defineProps({
  hideExtra: {
    type: Boolean,
    default: false
  }
})
</script>

父组件引用:

<template>
  <div>
    <ChildComponent hideExtra>
      <p>显示默认插槽数据</p>
    </ChildComponent>
  </div>
</template>

<script setup>
import ChildComponent from '@/components/ChildrenSlot.vue'
</script>

        这样定义插槽就能更加灵活的配置,大家学会了吗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值