WHAT - React 组件的 props.children 属性

目录

  • 一、什么是 children
  • 二、基本用法
  • 三、类型定义(TypeScript)
  • 四、一些高级用法
    • 1. 条件渲染 children
    • 2. 多个 children 插槽(命名插槽)
  • 五、children 的优势
  • 总结

在 React 中,children 是一个非常重要且特殊的 内置属性,它表示组件标签之间的嵌套内容。

一、什么是 children

举个例子:

const MyCard = ({ children: React.ReactNode }) => {return <div className="card"><div>title</div>{children}</div>;
};<MyCard><p>这是卡片内容</p>
</MyCard>

在这个例子中:

  • <p>这是卡片内容</p> 就是传给 MyCardchildren
  • MyCard 组件可以通过 props.children 访问到它

二、基本用法

const Wrapper = ({ children }: { children: React.ReactNode }) => {return <div className="wrapper">{children}</div>;
};// 使用
<Wrapper><h1>Hello</h1><p>World</p>
</Wrapper>

Wrapper 中,children 就是一个 ReactNode 类型的元素数组。

三、类型定义(TypeScript)

常用类型写法:

类型描述
React.ReactNode最常用,支持所有可渲染内容(JSX、字符串、null、数组等)
React.ReactElement更严格,只允许一个有效的 React 元素
ReactNode[]明确是多个节点(不推荐,ReactNode 已包含)
type Props = {children: React.ReactNode;
};

四、一些高级用法

1. 条件渲染 children

const ConditionalBox = ({ children, visible }: { children: React.ReactNode; visible: boolean }) => {return visible ? <div>{children}</div> : null;
};

2. 多个 children 插槽(命名插槽)

const Layout = ({ header, content }: { header: React.ReactNode; content: React.ReactNode }) => (<div><div>{header}</div><main>{content}</main></div>
);<Layout header={<h1>头部</h1>}content={<p>正文内容</p>}
/>

五、children 的优势

  • ✅ 灵活嵌套
  • ✅ 适合做布局容器组件、UI 包裹组件
  • ✅ 组合式组件(如 Card, Modal, Tabs)几乎都依赖 children

总结

内容
定义children 是组件内部嵌套的内容
类型React.ReactNode 最常用
用途实现通用组件、插槽功能
特点灵活、结构清晰、提升复用性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/76114.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot开发三板斧:高效构建企业级应用的核心技法

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;获得2024年博客之星荣誉证书&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;拥有高级工程师证书&#xff1b;擅长C/C、C#等开发语言&#xff0c;熟悉Java常用开发技术&#xff0c…

实战篇-梳理时钟树

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据 总结 前言 这是B站傅里叶的猫视频的笔记 一、建立工程 以Vivado的wave_gen为例子。为了引入异…

图灵逆向——题六-倚天剑

从第六题开始就要有个先看看请求头的习惯了[doge]。 别问博主为什么要你养成这个习惯&#xff0c;问就是博主被坑过。。。 headers里面有一个加密参数S&#xff0c;然后你就去逆向这个S对吧。 然后一看响应&#xff1a; 好家伙返回的还是个密文&#xff0c;所以要两次逆向咯。…

ubuntu自动更新--unattended-upgrades

ubuntu自动更新--unattended-upgrades 1 介绍2 发展历程3 配置与使用4 disable Auto update服务命令 参考 1 介绍 Unattended-Upgrades 是一个用于自动更新 Debian 及其衍生系统&#xff08;如 Ubuntu&#xff09;的工具。它的主要功能是自动检查、下载并安装系统更新&#xf…

从 Excel 到你的表格应用:条件格式功能的嵌入实践指南

一、引言 在日常工作中&#xff0c;面对海量数据时&#xff0c;如何快速识别关键信息、发现数据趋势或异常值&#xff0c;是每个数据分析师面临的挑战。Excel的条件格式功能通过自动化的视觉标记&#xff0c;帮助用户轻松应对这一难题。 本文将详细介绍条件格式的应用场景&am…

【HarmonyOS Next之旅】DevEco Studio使用指南(十一)

目录 1 -> 代码实时检查 2 -> 代码快速修复 3 -> C快速修复使用演示 3.1 -> 填充switch语句 3.2 -> 使用auto替换类型 3.3 -> 用&#xff1f;&#xff1a;三元操作符替换if-else 3.4 -> 从使用处生成构造函数 3.5 -> 将变量拆分为声明和赋值 1…

win10离线环境下配置wsl2和vscode远程开发环境

win10离线环境下配置wsl2和vscode远程开发环境 环境文件准备wsl文件准备vscode文件准备 内网环境部署wsl环境部署vscode环境部署 迁移后Ubuntu中的程序无法启动 环境 内网机&#xff1a;win10、wsl1 文件准备 wsl文件准备 在外网机上的wsl安装Ubuntu24.04&#xff0c;直接在…

Elasticsearch | ES索引模板、索引和索引别名的创建与管理

关注&#xff1a;CodingTechWork 引言 在使用 Elasticsearch (ES) 和 Kibana 构建数据存储和分析系统时&#xff0c;索引模板、索引和索引别名的管理是关键步骤。本文将详细介绍如何通过 RESTful API 和 Kibana Dev Tools 创建索引模板、索引以及索引别名&#xff0c;并提供具…

提高MCU的效率方法

要提高MCU(微控制器单元)的编程效率,需要从硬件特性、代码优化、算法选择、资源管理等多方面入手。以下是一些关键策略: 1. 硬件相关优化 时钟与频率: 根据需求选择合适的时钟源(内部/外部振荡器),避免过高的时钟频率导致功耗浪费。关闭未使用的外设时钟(如定时器、UA…

Visual Studio未能加载相应的Package包弹窗报错

环境介绍&#xff1a; visulal studio 2019 问题描述&#xff1a; 起因&#xff1a;安装vs扩展插件后&#xff0c;重新打开Visual Studio&#xff0c;报了一些列如下的弹窗错误&#xff0c;即使选择不继续显示该错误&#xff0c;再次打开后任然报错&#xff1b; 解决思路&am…

Android中Jetpack设计理念、核心组件 和 实际价值

一、Jetpack 的定义与定位&#xff08;基础必答&#xff09; Jetpack 是 Google 推出的 Android 开发组件集合&#xff0c;旨在&#xff1a; 加速开发&#xff1a;提供标准化、开箱即用的组件 消除样板代码&#xff1a;解决传统开发中的重复劳动问题 兼容性保障&#xff1a;…

计算机网络 实验二 VLAN 的配置与应用

一、实验目的 1. 熟悉 VLAN 和 PORT VLAN 的原理&#xff1b; 2. 熟悉华为网络模拟器的使用&#xff1b; 3. 掌握网络拓扑图的绘制&#xff1b; 4. 掌握单交换机内 VLAN 的配置。 二、实验设备 PC、华为模拟器 ENSP。 三、实验步骤 知识准备&#xff1a;VLAN 和 PORT V…

聊透多线程编程-线程基础-3.C# Thread 如何从非UI线程直接更新UI元素

目录 1. 使用 Control.Invoke 或 Control.BeginInvoke&#xff08;Windows Forms&#xff09; 2. 使用 Dispatcher.Invoke 或 Dispatcher.BeginInvoke&#xff08;WPF&#xff09; 3. 使用 SynchronizationContext 桌面应用程序&#xff08;如 Windows Forms 或 WPF&#xf…

TCP 和 UDP 可以使用同一个端口吗?

TCP 和 UDP 可以使用同一个端口吗&#xff1f; 前言 在深入探讨 TCP 和 UDP 是否可以使用同一个端口之前&#xff0c;我们首先需要理解网络通信的基本原理。网络通信是一个复杂的过程&#xff0c;涉及到多个层次的协议和机制。在 OSI 模型中&#xff0c;传输层是负责端到端数…

RVOS-2.基于NS16550a ,为os添加终端交互功能。

2.1 实验目的 为os添加uart功能&#xff0c;通过串口实现开发板与PC交互。 2.1 硬件信息 QEMU虚拟SoC含有 虚拟NS16550A设备 。 不同的地址线组合&#xff08;A2、A1、A0&#xff09;对应的读写模式和寄存器如下所示&#xff1a; 2.2 NS16550a 的初始化 线路控制寄存器&#…

java导入excel更新设备经纬度度数或者度分秒

文章目录 一、背景介绍二、页面效果三、代码0.pom.xml1.ImportDevice.vue2.ImportDeviceError.vue3.system.js4.DeviceManageControl5.DeviceManageUserControl6.Repeater7.FileUtils8.ResponseModel9.EnumLongitudeLatitude10.词条 四、注意点本人其他相关文章链接 一、背景介…

【力扣hot100题】(080)爬楼梯

让我们掌声恭迎动态规划的始祖—— 最基础的动态规划&#xff0c;原始方法是维护一个数组&#xff0c;每次记录到该阶梯的方案数量&#xff0c;每次的数量是到上一个阶梯的方案数量加上到上上一阶梯的方案数量&#xff0c;因为只有两种走法。 进阶可以优化空间复杂度&#xf…

CVE-2025-24813 漏洞全解析|Apache Tomcat 关键路径绕过与RCE

CVE-2025-24813 漏洞全解析&#xff5c;Apache Tomcat 关键路径绕过与RCE 作者:Factor .Poc作者:iSee857 CVE-2025-24813 漏洞全解析&#xff5c;Apache Tomcat 关键路径绕过与RCE一、漏洞概述二、影响版本三、漏洞原理&#x1f3af; 利用流程&#xff08;两步&#xff09;&am…

初识Linux:常见指令与权限的理解,以及相关衍生知识

目录 前言 关于linux的简介 代码开源 网络功能强大 系统工具链完整 一、Linux下的基本指令 1.ls指令 2.pwd指令 3.cd指令 4.whoami指令 5.touch指令 6.mkdir指令 7.rm指令 8.man指令 9.cp指令 10.mv指令 11.nano指令 12.cat指令 13.tac指令 14.more指令 15.less指令 16.head指令…

JVM虚拟机篇(七):JVM垃圾回收器全面解析与G1深度探秘及四种引用详解

JVM垃圾回收器全面解析与G1深度探秘及四种引用详解 JVM虚拟机&#xff08;七&#xff09;&#xff1a;JVM垃圾回收器全面解析与G1深度探秘及四种引用详解一、JVM有哪些垃圾回收器1. Serial回收器2. ParNew回收器3. Parallel Scavenge回收器4. Serial Old回收器5. Parallel Old回…