react简单入门-自定义组件的子组件渲染(类比vue的匿名插槽和具名插槽)

本文探讨了React中如何使用类比Vue的插槽概念,区分了匿名插槽直接通过props.children渲染和具名插槽通过自定义属性传递。核心在于jsx语法的应用和虚拟dom解析。

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

前言:首先在react中是没有插槽的概念的,但是可以类比vue或者其他组件库中“槽”的概念,官方解释:
在这里插入图片描述

案例:

“匿名插槽:”

根组件
在这里插入图片描述

父组件
在这里插入图片描述
效果展示:
在这里插入图片描述
经观察发现,这个<Fu>...</Fu>组件内部不管写什么,并在函数里面以{props.children}的形式去接收,就可以直接渲染了

“具名插槽:”

根组件:
在这里插入图片描述

Fu组件:
在这里插入图片描述
展示效果:
在这里插入图片描述
经观察,如果是需要类似具名插槽的效果的话,都是在组件标签上加上自定义属性就行了,而这个自定义属性的值是个符合jsx语法即可,未来传个函数就行,实质上jsx它最终返回的就是一个对象(虚拟dom),咱们看下打印结果就行:
在这里插入图片描述
总结:

不同点:区别就是前者是直接写在标签内部,然后用props.children接收,而后者则是要放在标签中,以属性的形式传入,而在起内部则用props.属性名的形式去放自己想要放在的地方即可;

共同点:都是通过jsx语法传入,用props接收,本质上都会被解析成对象(虚拟dom)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值