HTML 转 JSX 工具

将 HTML 片段转换为包含 React 属性名和内联样式对象的 JSX。

前端与设计
正在准备工作区…

输入

正在准备工作区…

输出
结果将显示在这里。

使用方法

  1. 粘贴 HTML 片段、打开 UTF-8 文件或载入“示例”。
  2. 选择缩进,然后点击“转换为 JSX”。
  3. 检查生成的标记,再复制或下载。

将 HTML 标记用于 React

从模板复制的 HTML 通常需要修改后才能放入 JSX。常见区别包括 className、htmlFor、自闭合元素以及内联样式的形式。

工具负责转换标记结构。组件状态、事件回调和应用逻辑仍需在使用生成 JSX 的位置自行编写。

属性与样式转换

HTML 属性会映射到 React 形式,包括 className 和 htmlFor。常见 SVG 属性使用 React 要求的大小写。

内联 CSS 转换为 style 对象,结果按 JSX 格式化。字面文本会按需转义,不会被当作 JavaScript 表达式。

示例
输入
<label class="field" for="email">Email<input id="email"></label>
结果
<label className="field" htmlFor="email">Email<input id="email" /></label>

简化的属性转换示例。完整输出会格式化,并包含 Fragment 包装。

结构与行为

HTML 片段会先解析再转换,输出在适当位置使用 Fragment 包装和自闭合语法。

script 元素和内联事件属性会被移除。这不会将其行为转换为 React 回调,也不保证剩余所有 URL 和样式都适用于你的应用。

整合结果

将 JSX 复制到组件的渲染或 return 表达式中。请手动恢复行为并检查内联样式,尤其是 style 对象无法完整表示的重复回退声明或 !important 规则。

处理限制

文本输入最大 1 MiB。CSS 和 HTML 转换在工作线程中运行,限时 30 秒。颜色工具使用 sRGB;生成的样式仅供预览,需要在您的布局中测试。

?

常见问题

会生成完整 React 组件吗?

不会。工具仅生成 JSX 标记,组件外层、导入、数据和行为需要在项目中添加。

script 和 onclick 属性会怎样处理?

script 元素及内联事件属性会被移除,不会执行其代码,也不会翻译成 React 事件处理函数。

文本中的大括号为什么仍然显示为文本?

输入按 HTML 解析,字面大括号会为 JSX 转义,而非作为表达式求值。

内联样式能完全还原吗?

常见声明会转换为 React 样式属性。但 JavaScript style 对象不能始终忠实表示重复回退声明与 !important。

可以转换 SVG 标记吗?

常见 SVG 属性会映射为 React 名称。请在组件中测试输出,包括 ID、引用和应用特有属性。

寻找下一个实用工具

语言

切换语言?当前页面的内容将被清空。请先复制或下载需要保留的数据。