跳到工具区
Web 开发

HTML/SVG 转 JSX/TSX

将 HTML 或 SVG 的属性和简单内联 style 改写为 React 语法,并按需输出 JSX/TSX 代码片段或组件。

Web Worker 仅本地处理工具
输入0 个字符
结果0 个字符
就绪

DevSexy 代码海关 · 每个属性都要申报

长得像 JSX,不代表已经越过 React 的边界。

HTML 和 SVG 都与 JSX 相似,但属性名、style、命名空间、事件以及外层结构遵循不同约定。转换器负责机械改写,并把需要你决定的行为和组件接口留在明处。

HTML 通道

<label class="field" for="email">
  • DOM 属性名
  • 空元素闭合
  • 表单关联

SVG 通道

<path stroke-width="2" fill-rule="evenodd">
  • 绘图属性改为驼峰
  • ID 与 URL 引用
  • ARIA 保持连字符

转换清单

每一次改写都应当看得见。

classclassName已重命名

使用 React DOM 属性

forhtmlFor已重命名

保留 label 与控件的关联

stroke-widthstrokeWidth已重命名

符合 SVG prop 大小写

aria-labelaria-label已保留

ARIA 属性拼写不变

data-test-iddata-test-id已保留

保留自定义 data 约定

&#111;nclick="save()"data-devsexy-review-onclick已隔离

行为需要接入真实函数

简单内联 style 实验台

CSS 声明字符串会变成 JavaScript 对象。

HTML attribute
style="font-size: 14px; --brand: #bfd456; line-height: 1.4"
React style prop
style={{ fontSize: "14px", "--brand": "#bfd456", lineHeight: "1.4" }}
font-sizefontSize属性名改为驼峰
--brand"--brand"CSS 自定义属性继续带引号
14px"14px"单位明确保留
1.4"1.4"转换器不猜测数值语义

事件处理器隔离区

带行为的字符串,不会被冒充为可信函数。

HTML 事件属性是在全局字符串作用域中执行的,React 则需要连接应用状态和依赖的函数引用。Worker 不会执行这些字符串,而是把原值保存在 data-devsexy-review-* 属性中;输入里的 script 元素会被移除。

Incoming behavior string
<button &#111;nclick="checkout(cart)">Buy</button>
Quarantined evidence
<button data-devsexy-review-onclick="checkout(cart)">Buy</button>

人工确认后替换:onClick={() => checkout(cart)}

外层结构约定

先决定代码归谁管理,再决定文件扩展名。

Fragment

<>…</>

组合一个或多个根节点,不额外增加 DOM 元素。

JSX 组件

export function Badge()

使用 JavaScript 语法;props 仍由你的组件接口决定。

TSX 组件

(): React.JSX.Element

只增加返回类型,不会凭空生成 props 类型。

组件名称

大写标识符

React 会把小写名称视为内置元素。

转换后的编译闸门

拿到代码,只是接入工作的开始。

01

解析 JSX / TSX

输出必须能通过目标项目的工具链。

02

阅读转换清单

检查被隔离的事件和不认识的属性。

03

实际渲染

核对标签、ID、渐变、mask 和表单关联。

04

补齐行为与类型

接入真实函数、状态、props、imports 和领域类型。

05

运行 lint 与测试

最终以 React 警告和交互测试为准。

直接回答

什么是 HTML&#x2F;SVG 转 JSX&#x2F;TSX?

在浏览器本地将 HTML 或 SVG 转为 JSX/TSX:改写 className、htmlFor 与 SVG 属性,把简单内联 style 转成对象,并隔离事件字符串供人工检查。

它能做什么?

  • 代码片段
  • JSX
  • TSX

如何使用 HTML&#x2F;SVG 转 JSX&#x2F;TSX

  1. 01

    选择任务

    在工作区选择代码片段、JSX和TSX。

  2. 02

    提供输入

    <button class="cta" aria-label="Save">Save</button>。内容始终留在浏览器的本地处理流程中。

  3. 03

    检查结果

    运行工具,检查结果和诊断信息;页面提供复制或下载时,可以直接导出。

常见问题

HTML/SVG 转 JSX/TSX是什么?
在浏览器本地将 HTML 或 SVG 转为 JSX/TSX:改写 className、htmlFor 与 SVG 属性,把简单内联 style 转成对象,并隔离事件字符串供人工检查。
HTML/SVG 转 JSX/TSX能做什么?
HTML/SVG 转 JSX/TSX支持代码片段、JSX和TSX,所有模式都可以直接在当前页面使用。
HTML/SVG 转 JSX/TSX会上传我的数据吗?
HTML/SVG 转 JSX/TSX会在浏览器本地处理输入内容。DevSexy 不会增加上传、登录或服务器处理步骤。
DevSexy 在浏览器本地处理工具输入:不追踪粘贴内容,无需账号,也没有上传步骤。