React 第二章 JSX

JSX是一种JavaScript的扩展语法,用于在React中编写组件的结构。JSX允许开发者将HTML结构和JavaScript代码混合在一起,使得编写React组件更加直观和简洁。

通过使用JSX,开发者可以在JavaScript中直接编写类似HTML的标记,例如<div>、<p>等,同时可以将JavaScript表达式嵌入到标记中,使得动态的数据渲染变得更加方便。在React中,JSX被转换为React元素,然后由React进行渲染和更新。

JSX的语法相对于传统的JavaScript语法更加灵活,但也需要使用特定的工具进行预编译,例如Babel。这样可以在不支持JSX的浏览器环境中使用React,并将JSX代码编译为标准的JavaScript语法。。

JSX 基础语法

React 中,使用 JSX 来描述页面。

js 复制代码
function App() {
  return (
    <div>Hello React~</div>
  );
}

你可以把类似于 HTML 的代码单独提取出来,例如:

js 复制代码
function App() {
  const ele = <div>Hello React~</div>
  return (
    ele
  );
}

JSX 来描述页面时,语法规则:

  • 根元素只能有一个
  • JSX 中使用 JavaScript 表达式。表达式写在花括号 {}
  • 属性值指定为字符串字面量,或者在属性值中插入一个 JavaScript 表达式
  • style 对应样式对象,class 要写作 className
  • 注释需要写在花括号
  • JSX 允许在模板中插入数组,数组会自动展开所有成员
  • 使用驼峰式命名法给大部分属性命名

createElement 方法

JSX 是一种 JavaScript 的语法扩展,Babel 会把 JSX 转译成一个名为 React.createElement 函数调用。

js 复制代码
React.createElement(type, [props], [...children]);

参数说明:

  • type :创建的 React 元素类型(可选的值有:标签名字符串、React 组件)。
  • props (可选):React 元素的属性。
  • children (可选):React 元素的子元素。

例如,下面两种代码的作用完全是相同的:

js 复制代码
const element1 = (
    <h1 className="greeting">
    	Hello, world!
    </h1>
);
const element2 = React.createElement(
    'h1',
    {className: 'greeting'},
    'Hello, world!'
);

这些对象被称为 "React 元素"。它们描述了你希望在屏幕上看到的内容。

可以看出,JSX 的本质其实就是 React.createElement 方法的一种语法糖。

相关推荐
恋猫de小郭11 小时前
Flutter Zero 是什么?它的出现有什么意义?为什么你需要了解下?
android·前端·flutter
崔庆才丨静觅17 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby606118 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了18 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅18 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅18 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅19 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment19 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅19 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊19 小时前
jwt介绍
前端