当前位置: 首页> 娱乐> 影视 > 电商设计平台_装饰公司网站设计_西安网站seo服务_互联网线上推广

电商设计平台_装饰公司网站设计_西安网站seo服务_互联网线上推广

时间:2025/7/18 13:18:19来源:https://blog.csdn.net/weixin_58540586/article/details/147121336 浏览次数:0次
电商设计平台_装饰公司网站设计_西安网站seo服务_互联网线上推广

文章目录

  • ReactNode 是什么?
    • 示例用途
  • JSX.Element 是什么?
    • 示例用途
  • ReactNode vs JSX.Element 对比
  • 使用建议
  • 其他相关类型
  • 例子总结

这两个类型 ReactNodeJSX.Element 在 React + TypeScript 中经常出现,但它们含义不同,适用场景也不同。

下面详细对比一下,并给出使用建议。

ReactNode 是什么?

它来自 @types/react,类型定义如下:

type React.ReactNode = string | number | boolean | React.ReactElement<any, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | React.ReactPortal | null | undefined

ReactNode 代表所有可以渲染的内容,包括 JSX.Element、Fragment、字符串、数字、数组、null 等。

示例用途

interface Props {children: React.ReactNode;
}const MyBox = ({ children }: Props) => <div>{children}</div>;

可以传入:

<MyBox>文本或<div>元素</div>都可以</MyBox>

JSX.Element 是什么?

这是 JSX 编译后 React 元素的类型,也就是 React.createElement(...) 的返回值的类型,表示一个具体的单个元素。或者是 React.cloneElement(...) 接收的值。

示例用途

const MyComponent = (): JSX.Element => {return <div>Hello</div>;
};

不允许返回字符串、数字、null 等,必须是单个且有效 React 元素。

ReactNode vs JSX.Element 对比

类型名来源含义 / 能接受的内容常见用途
ReactNodeReact表示一切可以渲染在页面上的内容children、插槽、嵌套组件
JSX.ElementJSX(全名:JSX.ElementReact.createElement 的返回值(具体的 JSX 元素)通常是组件返回值

使用建议

场景建议类型理由
组件 childrenReact.ReactNode更灵活,支持各种类型内容
单个 JSX 返回值JSX.Element明确指返回的是一个 React 元素
动态渲染插槽内容 / 插件React.ReactNode支持函数、组件、文字等
内部私用组件返回值类型JSX.Element限制更强,有助于类型检查

其他相关类型

类型含义
ReactElement是 JSX.Element 的父类型
ReactPortalPortal 节点的类型
ReactNode[]ReactNode 的数组

例子总结

// ✅ ReactNode:适用于 children
type MyProps = {children: React.ReactNode;header?: React.ReactNode;
};// ✅ JSX.Element:适用于组件返回值
const MyComponent = (): JSX.Element => {return <div>Hello</div>;
};
关键字:电商设计平台_装饰公司网站设计_西安网站seo服务_互联网线上推广

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: