在 React 开发中,JSX 与标准 HTML 有哪些主要区别?请从语法、属性命名、代码结构等方面说明。
考察说明
考察对 React JSX 与 HTML 差异的理解,包括语法和概念层面。
回答思路
- 【回答框架 1】JSX 是 JavaScript 的语法扩展,最终被编译为 React.createElement 调用;而 HTML 是标记语言,由浏览器直接解析。JSX 必须由构建工具(如 Babel)转换后才能运行。
- 【回答框架 2】属性命名差异:JSX 使用 camelCase,如 className 替代 class、htmlFor 替代 for;事件属性如 onClick 替代 onclick。注意 style 接受对象而非字符串。
- 【回答框架 3】JSX 支持嵌入 JavaScript 表达式,使用花括号 {},可实现动态渲染和逻辑;HTML 是静态的,无法直接嵌入表达式。
- 【回答框架 4】JSX 要求标签必须闭合,如 <img /> 和 <br />,而 HTML 某些标签可以省略闭合。
- 【回答框架 5】JSX 只能有一个根元素(React 16 后支持 Fragment),且注释写法不同,JSX 使用 {/* 注释 */}。
- 【关键点 1】JSX 是语法糖,编译为 React.createElement。
- 【关键点 2】属性名采用 camelCase,如 className、htmlFor。
- 【关键点 3】JSX 可嵌入表达式,支持动态内容。
- 【关键点 4】JSX 要求标签闭合,且注释方式不同。
- 【关键点 5】JSX 允许使用自定义组件,标签名可大写开头。
- 【易错点 1】不可将 class 直接用于 JSX,需用 className,否则 React 不识别。
- 【易错点 2】style 属性需传入对象,不能是字符串。
- 【易错点 3】JSX 中的注释必须使用 {} 包裹,否则会被当作文本输出。