位置: IT常识 - 正文

【react从入门到精通】React JSX详解(react最新教程)

编辑:rootadmin
【react从入门到精通】React JSX详解 文章目录前言React技能树什么是JSXJSX的基本语法规则1.JSX必须有一个顶层元素2.JSX标签必须有一个结束标记,或者是自闭合的3.JSX中可以使用JavaScript表达式4.JSX中的样式和HTML中的样式有所不同5.JSX中的class属性必须写成className6.JSX中的style属性必须使用对象来表示总结写在最后

推荐整理分享【react从入门到精通】React JSX详解(react最新教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:react快速入门,react 入门,react入门到精通,react入门到精通,react从入门到精通,react 入门教程,react 入门教程,react从入门到精通,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

在上一篇文章《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标签必须有一个结束标记,或者是自闭合的【react从入门到精通】React JSX详解(react最新教程)

在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应用非常重要。

写在最后✨原创不易,希望各位大佬多多支持。👍点赞,你的认可是我创作的动力。⭐️收藏,感谢你对本文的喜欢。✏️评论,你的反馈是我进步的财富。
本文链接地址:https://www.jiuchutong.com/zhishi/290779.html 转载请保留说明!

上一篇:vue3 使用defineAsyncComponent与component标签实现动态渲染组件(vue3.0用法)

下一篇:奥卡万戈三角洲上的非洲草原象群,博茨瓦纳 (© Juan-Carlos Munoz/Minden Pictures)(奥卡万戈三角洲位置)

  • 苹果手机录屏功能在哪(苹果手机录屏功能怎么设置)

    苹果手机录屏功能在哪(苹果手机录屏功能怎么设置)

  • 十进制29转换为二进制(十进制29转换为无符号二进制数等于)

    十进制29转换为二进制(十进制29转换为无符号二进制数等于)

  • 华为手机怎么弄水印在图片上(华为手机怎么弄出来下边的三个键)

    华为手机怎么弄水印在图片上(华为手机怎么弄出来下边的三个键)

  • 快手小店的订单都看不了怎么回事(快手小店的订单怎么突然没有了)

    快手小店的订单都看不了怎么回事(快手小店的订单怎么突然没有了)

  • 惠普非原装墨盒不识别(惠普非原装墨盒每天要清洗吗)

    惠普非原装墨盒不识别(惠普非原装墨盒每天要清洗吗)

  • mem是内存还是显存(电脑mem是显存吗)

    mem是内存还是显存(电脑mem是显存吗)

  • oppo手机测距仪在哪里(oppo手机测距仪收费吗)

    oppo手机测距仪在哪里(oppo手机测距仪收费吗)

  • 苹果收不到验证码是怎么回事(苹果收不到验证码怎么办)

    苹果收不到验证码是怎么回事(苹果收不到验证码怎么办)

  • 魅族16s怎么开启应用相机权限(魅族16s怎么开启开发者选项)

    魅族16s怎么开启应用相机权限(魅族16s怎么开启开发者选项)

  • 新买的苹果11怎么激活(新买的苹果11怎么创建新的ID)

    新买的苹果11怎么激活(新买的苹果11怎么创建新的ID)

  • 苹果11插卡教程(苹果11卡怎么插)

    苹果11插卡教程(苹果11卡怎么插)

  • 怎么进入品牌喵铺

    怎么进入品牌喵铺

  • 天猫二选一是什么意思(天猫要求商家二选一)

    天猫二选一是什么意思(天猫要求商家二选一)

  • 美团上如何取排队号(如何在美团排队取号)

    美团上如何取排队号(如何在美团排队取号)

  • 哈罗顺风车怎么付款(哈罗顺风车怎么更改目的地)

    哈罗顺风车怎么付款(哈罗顺风车怎么更改目的地)

  • cpf网络安全大赛是什么(网络安全大赛ctf成员)

    cpf网络安全大赛是什么(网络安全大赛ctf成员)

  • 苹果蓝牙耳机二代功能(苹果蓝牙耳机二代怎么辨别真假)

    苹果蓝牙耳机二代功能(苹果蓝牙耳机二代怎么辨别真假)

  • beat solo3 wireless怎么关机

    beat solo3 wireless怎么关机

  • 抖音里保存的视频在哪里(抖音里保存的视频怎么去水印)

    抖音里保存的视频在哪里(抖音里保存的视频怎么去水印)

  • ug怎么把斜工件摆正(ug怎么把斜工件摆正视图方向)

    ug怎么把斜工件摆正(ug怎么把斜工件摆正视图方向)

  • xsmax可以无线充电吗(苹果xsmax可不可以无线充电)

    xsmax可以无线充电吗(苹果xsmax可不可以无线充电)

  • 华为手机一直语音说话,什么都点不了(华为手机一直语音播报还必须点两下)

    华为手机一直语音说话,什么都点不了(华为手机一直语音播报还必须点两下)

  • ChatGPT 中文调教指南。各种场景使用指南。学习怎么让它听你的话

    ChatGPT 中文调教指南。各种场景使用指南。学习怎么让它听你的话

  • 挂车交车船税吗
  • 汇算清缴要退税怎么做凭证呢
  • 购进餐饮服务的会计分录
  • 机票行程单能报销几次
  • 增值税可以做平吗
  • 非同一控制下企业合并对价小于可辨认
  • 外汇结款怎么办理
  • 挂靠管理费如何入账?
  • 领用自产应税消费品负担的消费税计入在建工程成本吗
  • 直接减免的增值税属于财政性资金吗
  • 以股权投资入股放高利贷违法吗
  • 出口货物的进项发票什么时候认证
  • 计提所得税是在结转12月损益之前还是之后
  • 开加工费的发票该如何抵扣?
  • 印花税少于1元怎么处理
  • 税收分类编码选错了会罚款么
  • 半年付一次房租,房东一般提前多长时间催租
  • 天猫店不开发票会被扣多少分
  • 付给企业的律师费用
  • 房企结转收入
  • 印花税年度申报表怎么填
  • 公司注销银行账户流程
  • 待抵扣进项税额借贷方向
  • 购入低值易耗品一批,实际成本4000元
  • 如何调整往来账款
  • coolmark是病毒吗
  • 财务变更是什么意思
  • 长期病假解除劳动合同怎么赔偿
  • 如何选购餐桌椅
  • php如何上传1个g以上的文件
  • php imagettftext()函数
  • 卢塞恩小镇瑞士
  • 发票刮出来的奖有兑奖时间
  • codeignitor
  • php+mongodb
  • 代理业务怎么记账
  • 充电桩折旧年限是多少年
  • 小规模纳税人无进项票怎么办
  • 已认证发票被作废
  • 软件和集成电路企业
  • python生成器的应用场景
  • 公司出现质量问题员工怎么处理
  • 企业无票支出该怎么做账
  • 现金流量表怎么填写
  • 购入车辆发生的费用
  • 背书转让的操作
  • 购买软件使用权计入无形资产吗
  • 应交税费要计提吗?
  • 如何做好应收应付会计
  • 航信服务费减免怎么填
  • 应收账款收不回来怎么处理分录
  • 非居民企业境内所得
  • 无法确定退货率的处理
  • 非盈利社会团体可以开发票吗
  • 收入与成本不配合
  • 固定资产折旧度怎么计算
  • 个体工商户对公账户需要交税吗
  • 注册资本可以是欧元吗
  • 住宿费电子发票
  • 房地产开发企业销售自行开发的房地产项目
  • 什么是记账凭证?有哪些分类
  • sql中的where in
  • win8.1使用技巧
  • win10系统打开ie浏览器变百度怎么改回ie浏览器了
  • mac系统快速入门
  • lsass.exe在哪个文件夹
  • win7隐藏文件怎么调出来
  • 快捷方式栏在哪
  • linux命令csdn
  • 使用jquery
  • 微博是怎么用
  • css中的auto
  • jquery基础知识
  • 网页设置透明背景
  • 手把手教怎么说
  • jquery第十章上机
  • 税务局冬季作息时间
  • 电子税务局怎么添加银行账户信息
  • 应征增值税不含销售额3%和5%征收的有什么区别
  • 如何查询海关进口货物报关单
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设