JSX

收藏920

阅读2239

更新时间2025-08-20

什么是 JSX?

JSX 代表 JavaScript XML。

JSX 允许我们在 React 中编写 HTML。

JSX 使在 React 中编写和添加 HTML 变得更加容易。


编码 JSX

JSX 允许我们在 JavaScript 中编写 HTML 元素并将它们放置在 DOM 中,而无需任何 createElement()appendChild() 方法。

JSX 将 HTML 标签转换为 react 元素。

您不需要使用 JSX,但 JSX 使编写 React 应用程序变得更加容易。

这里有两个例子。 第一个使用 JSX,第二个不使用:

示例 1

JSX:

const myElement = 

I Love JSX!

; const root = ReactDOM.createRoot(document.getElementById('root')); root.render(myElement);

运行实例 »

示例 2

没有 JSX:

const myElement = React.createElement('h1', {}, 'I do not use JSX!');

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(myElement);

运行实例 »

正如您在第一个示例中所见,JSX 允许我们直接在 JavaScript 代码中编写 HTML。

JSX 是基于 ES6 的 JavaScript 语言的扩展,在运行时被翻译成常规的 JavaScript。


JSX 中的表达式

使用 JSX,您可以在花括号 { } 内编写表达式。

表达式可以是 React 变量、属性或任何其他有效的 JavaScript 表达式。 JSX 将执行表达式并返回结果:

实例

执行表达式5 + 5:

const myElement = 

React is {5 + 5} times better with JSX

;

运行实例 »


插入一大块 HTML

要在多行上编写 HTML,请将 HTML 放在括号内:

实例

创建一个包含三个列表项的列表:

const myElement = (
  
  • Apples
  • Bananas
  • Cherries
);

运行实例 »


一个顶级元素

HTML 代码必须包含在 ONE 顶级元素中。

所以如果你喜欢写两个段落,你必须把它们放在一个父元素中,比如一个div元素。

实例

将两个段落包装在一个 DIV 元素中:

const myElement = (
  

I am a paragraph.

I am a paragraph too.

);

运行实例 »

如果 HTML 不正确,或者 HTML 缺少父元素,JSX 将抛出错误。

或者,您可以使用"片段"来换行多行。 这将防止不必要地向 DOM 添加额外的节点。

片段看起来像一个空的 HTML 标记:<>

实例

将两个段落包装在一个片段中:

const myElement = (
  <>
    

I am a paragraph.

I am a paragraph too.

);

运行实例 »


元素必须关闭

JSX 遵循 XML 规则,因此 HTML 元素必须正确关闭。

实例

/> 关闭空元素

const myElement = ;

运行实例 »

如果 HTML 没有正确关闭,JSX 会抛出错误。


属性 class = className

class 属性是 HTML 中常用的属性,但是由于 JSX 被渲染为 JavaScript,而 class 关键字是 JavaScript 中的保留字,所以你不是 允许在 JSX 中使用它。

改用属性className

JSX 通过使用 className 解决了这个问题。 渲染 JSX 时,它会将 className 属性转换为 class 属性。

实例

在 JSX 中使用属性 className 而不是 class:

const myElement = 

Hello World

;

运行实例 »


条件 - if 语句

React 支持 if 语句,但不支持 inside JSX。

为了能够在 JSX 中使用条件语句,您应该将 if 语句放在 JSX 之外,或者您可以使用三元表达式来代替:

选项 1:

在 JSX 代码之外编写 if 语句:

实例

如果x小于10则写"Hello",否则写"Goodbye":

const x = 5;
let text = "Goodbye";
if (x < 10) {
  text = "Hello";
}

const myElement = 

{text}

;

运行实例 »

选项 2:

改用三元表达式:

实例

如果x小于10则写"Hello",否则写"Goodbye":

const x = 5;

const myElement = 

{(x) < 10 ? "Hello" : "Goodbye"}

;

运行实例 »

注意,为了在 JSX 中嵌入 JavaScript 表达式,JavaScript 必须用大括号 {} 括起来。。 p>


学习训练

练习题:

不使用 JSX 渲染

元素。

const paragraph = React.createElement(, {}, 'This is a paragraph without using JSX!');

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(paragraph);

开始练习


相关

视频

RELATED VIDEOS

更多

免费

Web前端开发极速入门
初级 Web前端开发极速入门

219920次学习

收藏

免费

前端入门_HTML5
初级 前端入门_HTML5

616946次学习

收藏

免费

30分钟学会网站布局
初级 30分钟学会网站布局

238440次学习

收藏

免费

CSS视频教程-玉女心经版
初级 CSS视频教程-玉女心经版

393054次学习

收藏

免费

独孤九贱(1)_HTML5视频教程

免费

独孤九贱(6)_jQuery视频教程

免费

独孤九贱(7)_Bootstrap视频教程

免费

独孤九贱(2)_CSS视频教程
初级 独孤九贱(2)_CSS视频教程

229605次学习

收藏

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.8万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.4万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

71万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.7万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号