React DOM 组件

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


通用组件

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

这包括 React 特定的 props,例如 refdangerouslySetInnerHTML


表单组件

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

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


资源和元数据组件

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

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


所有 HTML 组件

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

注意

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


自定义 HTML 元素 如果你渲染一个带有连字符的标签,比如 <my-element>,React 会认为你想渲染一个 自定义 HTML 元素。 在 React 中,渲染自定义元素的方式与渲染内置浏览器标签不同。

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

如果你渲染一个带有 is 属性的内置浏览器 HTML 元素,它也将被视为自定义元素。

注意

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

你可以通过将 React 包升级到最新的实验版本来尝试它。

  • react@experimental
  • react-dom@experimental

React 的实验版本可能包含错误。不要在生产环境中使用它们。


所有 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