vue+tsx+slot

本文介绍了Vue组件的定义与使用,展示了如何通过插槽传递默认内容和自定义标题。组件`children`接收默认数据和title插槽,允许外部注入内容。在父组件中,可以通过`v-slots`来传递`default`和`title`插槽内容,实现内容的渲染。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

组件接受默认的数据以及一个title

import { defineComponent } from "vue";

export default defineComponent({
  name: "children",
  setup(props, { emit, slots }) {
    return () => {
      return <div class="children">
        {slots.default ? slots.default() : null}
        {slots.title ? slots.title() : null}
        <div class="add-btn">add-btn</div>
      </div>
    }
  }
})

调用,组件包裹的形式显示默认的插槽

import Children from './chidren.tsx';

setup(props, { emit, slots }) {
  return () => {
      return <div class="parent">
        <Children >
			default
         </Children >
      </div>
  }
}

浏览器渲染:

在这里插入图片描述

调用, v-slots传入default和title对象

setup(props, { emit, slots }) {
	function DefaultRender() {
      return 'default'
    }
    function TitleRender() {
      return 'title'
    }

  return () => {
      return <div class="parent">
        <Children  v-slots={{
          default: DefaultRender,
          title: TitleRender
         }}/> 
      </div>
  }
}

浏览器渲染:

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值