行业资讯
📅 2026/7/9 6:40:19
jsx和tsx的区别和关系是啥,后端程序员学前端
先给结论JSX 和 TSX 不是两种语言而是带标签语法的两种写法。区别就一个字——类型。它们的关系是TSX TypeScript JSX。JSX 是给 JavaScript 加的语法糖让你能在.js里写像 HTML 的标签TSX 是给 TypeScript 加的同一份语法糖写在.ts里。React 不管你用哪个最终都把它们编译成同一个东西一串React.createElement()或新版jsx()函数调用也就是虚拟 DOM 节点。下面这张图把从源文件到 React 元素的整条链路画清楚了一、具体区别一张表维度JSXTSX语言基础JavaScript动态TypeScript静态类型文件后缀.jsx.tsx类型检查无错误运行时才炸编译期就拦写错即红线编译工具Babel / SWCtsc Babel / SWCIDE 补全 / 重构一般强类型驱动学习成本低多学一套类型系统二、后端视角的类比JSX ≈ 动态语言脚本Python / 裸 JS灵活但age传成字符串只有跑起来才崩。TSX ≈ 静态语言Java / Go / C# / Kotlin有接口契约、编译期报错、IDE 自动补全和重命名飞起。对你这种后端来说TSX 几乎零违和感——interface UserCardProps就是你的 DTOT泛型还是泛型编译报错的直觉和后端完全一致。三、同一组件直接对照下面这张图用同一个UserCard组件左边 JSX、右边 TSX——你会发现 UI 结构一模一样TSX 只是多了类型定义那几行四、给你的前端学习路线后端友好版先建立心智模型组件 函数props 入参state/hooks 局部可变状态。本质就是带 UI 返回值的函数别被前端俩字吓到。JSX 基础半天上手div、{变量}、map渲染列表、onClick事件就这些。立刻上 TSX把 props 用interface框死享受编译期保护你刚看的那张对照图就是这个。工具链别自己配npm create vitelatest选react-ts模板开箱即用别去手搓 webpack。一句话收尾JSX 是皮TSX 是带类型的皮