【react从入门到精通】React JSX详解

这篇具有很好参考价值的文章主要介绍了【react从入门到精通】React JSX详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


【react从入门到精通】React JSX详解

✍创作者:全栈弄潮儿
🏡 个人主页: 全栈弄潮儿的个人主页
🏙️ 个人社区,欢迎你的加入:全栈弄潮儿的个人社区
📙 专栏地址:react从入门到精通

人工智能福利文章

  • 【分享几个国内免费可用的ChatGPT镜像】
  • 【10几个类ChatGPT国内AI大模型】
  • 【用《文心一言》1分钟写一篇博客简直yyds】
  • 【用讯飞星火大模型1分钟写一个精美的PPT】

前言

【react从入门到精通】React JSX详解

在上一篇文章《React生命周期》中我们了解了React的生命周期,深入分析了React每个生命周期的意义。了解了利用生命周期中的函数能够帮助我们实现什么样的功能以及为什么要这么做。有了以上的只是基础我们对React的理解又更近一步。更够写出更加健壮完善的代码。

本文中我们将详细了解React中的JSX,以及需要注意的一些语法规则。

React技能树

React 技能树
├── JSX
│   ├── 语法
│   ├── 元素渲染
│   ├── 组件
│   ├── Props
│   ├── State
│   └── 生命周期
├── 组件通信
│   ├── 父子组件通信
│   ├── 兄弟组件通信
│   ├── 跨级组件通信
│   ├── Context
│   └── Redux
├── 样式
│   ├── 内联样式
│   ├── CSS Modules
│   └── Styled Components
├── 路由
│   ├── React Router
│   ├── 动态路由
│   └── 嵌套路由
├── 数据请求
│   ├── Axios
│   ├── Fetch
│   └── GraphQL
├── 状态管理
│   ├── Redux
│   ├── MobX
│   └── Recoil
├── 常用库和框架
│   ├── Ant Design
│   ├── Material UI
│   ├── Bootstrap
│   ├── Semantic UI
│   └── Tailwind CSS
├── 测试
│   ├── Jest
│   ├── Enzyme
│   └── React Testing Library
├── 构建工具
│   ├── Webpack
│   └── Parcel
└── 服务端渲染
    ├── Next.js
    └── Gatsby

什么是JSX

JSX是一种语法扩展,它将HTML和JavaScript代码结合起来,使得我们能够在JavaScript代码中编写类似HTML的标记。在React中,我们可以使用JSX来描述组件的结构和样式,它提供了一种简洁、清晰的方式来表达我们的意图。

在React中,JSX被编译为普通的JavaScript函数调用,所以我们可以在JavaScript中使用它。具体来说,JSX被编译为React.createElement函数的调用,该函数接受三个参数:要创建的元素类型、元素的属性和子元素。

下面是一个简单的JSX示例:

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

在这个例子中,我们定义了一个名为element的变量,它的值是一个JSX元素,代表一个h1标签,包含文本"Hello, world!"。下面是相应的JavaScript代码:

const element = React.createElement(
  'h1',
  null,
  'Hello, world!'
);

在这个例子中,我们使用React.createElement函数创建了一个名为element的变量,它的值与JSX示例的值相同。第一个参数是元素类型,这里是’h1’字符串;第二个参数是元素的属性,这里是null;第三个参数是子元素,这里是字符串’Hello, world!'。

JSX的基本语法规则

1.JSX必须有一个顶层元素

在JSX中,我们必须将所有的标签包裹在一个顶层元素中。如果有多个顶层元素,我们需要使用一个容器元素将它们包裹起来。例如:

const element = (
  <div>
    <h1>Hello, world!</h1>
    <p>Welcome to my website.</p>
  </div>
);

在这个例子中,我们将h1和p标签包裹在一个div标签中,以便它们成为顶层元素。

2.JSX标签必须有一个结束标记,或者是自闭合的

在JSX中,所有的标签都必须有一个结束标记,或者是自闭合的。例如:

// 有结束标记的标签
<h1>Hello, world!</h1>

// 自闭合的标签
<img src="image.jpg" alt="example" />

3.JSX中可以使用JavaScript表达式

在JSX中,我们可以在标记中使用JavaScript表达式,用花括号{}包裹。例如:

const name = 'React';
const element = <h1>Hello, {name}!</h1>;

在这个例子中,我们定义了一个名为name的变量,它的值是字符串’React’。我们在h1标签中使用了一个JavaScript表达式{name},它将被替换为变量name的值。

4.JSX中的样式和HTML中的样式有所不同

在HTML中,我们可以直接在元素上使用style属性,并在属性值中使用CSS语法来描述样式,例如:

<div style="color: red; font-size: 24px;">Hello, world!</div>

而在JSX中,我们也可以使用style属性来指定元素的样式,但是属性值必须使用JavaScript对象来表示。例如:

const style = {
  color: 'red',
  fontSize: '24px',
};
const element = <div style={style}>Hello, world!</div>;

可以看到,我们首先定义了一个名为style的JavaScript对象,它包含了color和fontSize两个属性,并分别指定了它们的值为’red’和’24px’。然后,我们在JSX中使用style属性,并将style对象作为属性值传递给div元素。

需要注意的是,JSX中的style属性与HTML中的style属性语法有所不同,我们必须使用JavaScript对象来表示样式,并使用驼峰式命名法来表示CSS属性名。例如,CSS中的属性background-color在JavaScript对象中表示为backgroundColor。

5.JSX中的class属性必须写成className

在JSX中,我们使用className属性来指定元素的class,而不是使用HTML中的class属性。例如:

const element = <div className="container">Hello, world!</div>;

在这个例子中,我们使用了className属性来指定div元素的class为’container’。

6.JSX中的style属性必须使用对象来表示

在JSX中,我们使用style属性来指定元素的样式,而不是使用HTML中的style属性。但是,与HTML中不同的是,在JSX中,我们需要使用一个JavaScript对象来表示样式。例如:

const style = {
  color: 'red',
  fontSize: '24px',
};
const element = <div style={style}>Hello, world!</div>;

在这个例子中,我们定义了一个名为style的变量,它的值是一个包含color和fontSize属性的对象。我们使用style属性来指定div元素的样式为这个对象。

JSX中的注释与HTML中的注释有所不同。
在JSX中,我们使用花括号和注释符号/* */来表示注释,而不是使用HTML中的 。例如:

const element = (
  <div>
    {/* 这是一个注释 */}
    <h1>Hello, world!</h1>
  </div>
);

在这个例子中,我们在JSX中使用注释符号/* */来表示注释,它们将被编译为JavaScript中的注释。

总结

在React中,JSX提供了一种简洁、清晰的方式来描述组件的结构和样式。它结合了HTML和JavaScript代码,使得我们能够在JavaScript代码中编写类似HTML的标记。

在使用JSX时,需要注意一些语法规则,例如必须有一个顶层元素、标签必须有结束标记或自闭合、样式必须使用对象来表示等。掌握JSX的使用方法对于开发React应用非常重要。

脑筋急转弯小程序抢先体验

【react从入门到精通】React JSX详解


✍创作不易,求关注😄,点赞👍,收藏⭐️文章来源地址https://www.toymoban.com/news/detail-454481.html

到了这里,关于【react从入门到精通】React JSX详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【React】‘React‘ must be in scope when using JSX react/react-in-jsx-scope

    React 报错: 意思是在使用 JSX 时,没有引入 React ,比如像这样: 在使用 import 引入时,没有引入 React 。所以在被 Eslint 的 \\\"plugin:react/recommended\\\" 检查时,就会报错。 于是很多人就选择引入的时候加上 React ,这样 这样确实不报错了,但是他们忽略了一个版本事实: 在 React@17

    2024年02月15日
    浏览(30)
  • React源码解析18(1)------ React.createElement 和 jsx

    我们知道在React17版本之前,我们在项目中是一定需要引入react的。 import React from “react” 即便我们有时候没有使用到React,也需要引入。原因是什么呢? 在React项目中,如果我们使用了模板语法JSX,我们知道它要先经过babel的转译。那babel会将JSX转换成什么样子的格式呢? 可

    2024年02月13日
    浏览(28)
  • React02-JSX 语法

    React.createElement 是 jsx 语法的编译结果,这个函数用来创建一个 React 元素,它的返回值是一个 Virtual DOM(虚拟DOM)。 React.createElement(type, props, ...children) 第一个参数为元素类型,可以是标签名或组件名,第二个参数为元素属性,第三个参数为子节点列表。 以上2种写法是等价的

    2024年02月12日
    浏览(27)
  • 【React基础】– JSX语法

    ◼ 这段element变量的声明右侧赋值的标签语法是什么呢? ​  它不是一段字符串(因为没有使用引号包裹); ​  它看起来是一段HTML元素,但是我们能在js中直接给一个变量赋值html吗? ​  其实是不可以的,如果我们将 type=“text/babel” 去除掉,那么就会出现语法错误

    2024年01月21日
    浏览(59)
  • React笔记(二)JSX

    一、JSX JSX是javascript XML的简写,实际上是javascript的扩展,既有javascript的语法结构,又有XML的结构 1、JSX的规则要求 jsx必须要有一个根节点 如果不想产生无用的根标签,但是还要遵守JSX的语法的要求,可以使用如下两种方式 JSX必须要有一个根节点,而且编译之后在浏览器中不

    2024年02月11日
    浏览(32)
  • React的基础概念JSX

    首先我们需要创建虚拟DOM,然后渲染虚拟DOM到页面上展示 其次在写react的内容的时候,我们在script里面,需要填写类型为babel,而不是JavaScript。因此我们需要在上方引入babel文件夹 另外还需要引入react核心库和react-dom文件,react-dom是用于支持react操作DOM的 类型为babel是为了告诉

    2024年02月11日
    浏览(33)
  • react06-jsx渲染机制

    构建视图的具体流程 : 将jsx语法,编译为虚拟dom对象 ,根据react中的处理生成virtualDom ,这是react自己内部构建的一套对象体系,基于jsx中的属性描述构建成视图中真实DOM的相关描述,具体通过 React.createElement(type , props , children) 将虚拟dom构建成真实dom 补充: 第一次渲染是直接

    2024年04月28日
    浏览(18)
  • react之组件与JSX

    概述:React是一个用于构建用户界面(UI)的JavaScript库,用户界面由按钮,文本和图像等小单元内容构建而成。React帮助你把它们组合成可重用,可嵌套的组件。从web端网站到移动端应用,屏幕上的所有内容都可以被分解成组件。 定义组件 一直以来,创建网页时,Web 开发人员

    2024年04月25日
    浏览(28)
  • React的jsx的用法

    React是一个流行的JavaScript库,用于构建用户界面。它使用一种名为JSX的语法扩展来描述组件的结构和样式。JSX是React的核心语言之一,它允许开发人员在JavaScript中编写HTML,从而使代码更加简洁和易于阅读。 JSX是一种语法扩展 ,它允许开发人员在JavaScript中编写类似于HTML的代

    2024年02月10日
    浏览(34)
  • React基本引入和JSX语法

    英文官网: https://reactjs.org/ 中文官网: https://react.docschina.org/ 用于动态构建用户界面的 JavaScript 库(只关注于视图) 由Facebook开源 声明式编码 组件化编码 React Native 编写原生应用 高效(优秀的Diffing算法) 使用虚拟(virtual)DOM, 不总是直接操作页面真实DOM。 DOM Diffing算法, 最小化页面

    2024年02月10日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包