React DOM 组件

React 支持所有浏览器内置的 HTMLSVG 组件。


常用组件

所有内置浏览器组件都支持一些属性和事件。

这包括 React 特定的属性,例如 refdangerouslySetInnerHTML


表单组件

这些内置浏览器组件接受用户输入

它们在 React 中很特殊,因为将 value 属性传递给它们会使它们成为受控的。


资源和元数据组件

这些内置浏览器组件允许您加载外部资源或使用元数据注释文档

它们在 React 中很特殊,因为 React 可以将它们渲染到文档头部,在资源加载时挂起,并执行在每个特定组件的参考页面上描述的其他行为。


所有HTML组件

React 支持所有内置浏览器 HTML 组件。这包括

注意

DOM 标准类似,React 使用 camelCase 约定来命名属性。例如,您将编写 tabIndex 而不是 tabindex。您可以使用 在线转换器将现有的 HTML 转换为 JSX。


自定义 HTML 元素

如果渲染带有短横线的标签,例如 <my-element>,React 将假设您想要渲染一个自定义 HTML 元素。 在 React 中,渲染自定义元素与渲染内置浏览器标签的方式不同。

  • 所有自定义元素属性都序列化为字符串,并且始终使用属性设置。
  • 自定义元素接受 class 而不是 className,以及 for 而不是 htmlFor

如果使用is 属性渲染内置浏览器 HTML 元素,它也将被视为自定义元素。

注意

未来版本的 React 将包含对自定义元素的更全面支持。

您可以尝试将 React 包升级到最新的实验版本。

  • react@experimental
  • react-dom@experimental

React 的实验版本可能包含 bug。请勿在生产环境中使用它们。


所有 SVG 组件

React 支持所有内置浏览器 SVG 组件。这包括:

注意

DOM 标准类似,React 使用 camelCase 约定命名属性。例如,您将编写 tabIndex 而不是 tabindex。您可以使用在线转换器将现有的 SVG 转换为 JSX。

命名空间属性也必须不带冒号书写

  • xlink:actuate 变为 xlinkActuate
  • xlink:arcrole 变为 xlinkArcrole
  • xlink:href 变为 xlinkHref
  • xlink:role 变为 xlinkRole
  • xlink:show 变为 xlinkShow
  • xlink:title 变为 xlinkTitle
  • xlink:type 变为 xlinkType
  • xml:base 变为 xmlBase
  • xml:lang 变为 xmlLang
  • xml:space 变为 xmlSpace
  • xmlns:xlink 变为 xmlnsXlink