1. JSX基础概念解析
JSX是JavaScript XML的缩写,它是一种JavaScript的语法扩展。简单来说,它允许我们在JavaScript代码中直接编写类似HTML的结构。这种语法最初由React团队提出,现已成为React开发中的标准写法。
1.1 JSX的本质
JSX并不是一种新的编程语言,它本质上是一种语法糖。在编译阶段,JSX会被转换成普通的JavaScript函数调用。例如:
jsx复制const element = <h1>Hello, world!</h1>;
会被Babel等工具转换为:
javascript复制const element = React.createElement('h1', null, 'Hello, world!');
这种转换过程完全由构建工具自动完成,开发者无需手动处理。JSX的主要价值在于:
- 提供更直观的UI描述方式
- 使组件结构更清晰易读
- 充分利用JavaScript的表达能力
1.2 JSX与HTML的区别
虽然JSX看起来像HTML,但两者有几个关键区别:
-
属性命名:JSX使用camelCase命名约定而非HTML的kebab-case。例如:
- HTML:
class→ JSX:className - HTML:
tabindex→ JSX:tabIndex
- HTML:
-
闭合标签:JSX中所有标签必须显式闭合,即使是空元素:
jsx复制<img src="..." alt="..." /> // 正确 <img src="..." alt="..."> // 错误 -
JavaScript表达式:JSX中可以使用
{}嵌入任意JavaScript表达式:jsx复制const name = 'Alice'; const element = <p>Hello, {name}</p>;
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. JSX基础语法详解
2.1 基本元素创建
创建一个简单的JSX元素与编写HTML几乎相同:
jsx复制const heading = <h1>欢迎学习JSX</h1>;
这个元素可以像普通变量一样在组件中使用。需要注意的是,JSX元素应该始终以大写字母开头,这是React区分组件和原生DOM元素的约定。
2.2 属性与表达式
JSX中的属性可以通过多种方式设置:
-
字符串字面量:
jsx复制const element = <div className="container"></div>; -
JavaScript表达式(使用花括号):
jsx复制const userId = 123; const element = <d
