专业编程基础技术教程

网站首页 > 基础教程 正文

06 JSX与React 元素 react元素和组件

ccvgpt 2024-11-02 11:21:27 基础教程 9 ℃

考虑如下变量声明:

const element = <h1>Hello, world!</h1>;

这个有趣的标签语法既不是字符串也不是 HTML。它被称为 JSX(全称:JavaScript XML),是一个 JavaScript 的语法扩展。

06 JSX与React 元素 react元素和组件

在 JSX 语法中,你可以在大括号内放置任何有效的 JavaScript 表达式

为了便于阅读,我们会将 JSX 拆分为多行。

const element = (
  <div>
    <h1>Hello!</h1>
    <h2>Good to see you here.</h2>
  </div>
);

同时,我们建议将内容包裹在括号中,虽然这样做不是强制要求的,但是这可以避免遇到自动插入分号的陷阱。


Babel 会把 JSX 转译成一个名为 React.createElement() 函数调用。

以下两种示例代码完全等效:

const element = (
  <h1 className="greeting">
    Hello, world!
  </h1>
);
const element = React.createElement(
  'h1',
  {className: 'greeting'},
  'Hello, world!'
);

React.createElement() 会预先执行一些检查,以帮助你编写无错代码,但实际上它创建了一个这样的对象:

// 注意:这是简化过的结构
const element = {
  type: 'h1',
  props: {
    className: 'greeting',
    children: 'Hello, world!'
  }
};

这些对象被称为 “React 元素”。它们描述了你希望在屏幕上看到的内容。React 通过读取这些对象,然后使用它们来构建 DOM 以及保持随时更新。

元素是构成 React 应用的最小砖块组件是由元素构成的。React 元素是不可变对象。一旦被创建,你就无法更改它的子元素或者属性。一个元素就像电影的单帧:它代表了某个特定时刻的 UI。

组件允许你将 UI 拆分为独立可复用的代码片段,并对每个片段进行独立构思组件,从概念上类似于 JavaScript 函数。它接受任意的入参(即 “props”),并返回用于描述页面展示内容的 React 元素。


参考链接:https://react.docschina.org/docs/introducing-jsx.html

Tags:

最近发表
标签列表