位置: 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)(奥卡万戈三角洲位置)

  • qq空间相册视频怎么保存到手机(qq空间相册视频如何导出到电脑)

    qq空间相册视频怎么保存到手机(qq空间相册视频如何导出到电脑)

  • 如何进入路由器设置界面(如何进入路由器界面)

    如何进入路由器设置界面(如何进入路由器界面)

  • 电脑重命名怎么改不了(电脑重命名怎么改不了呢)

    电脑重命名怎么改不了(电脑重命名怎么改不了呢)

  • 搜狗输入法怎么设置键盘壁纸(搜狗输入法怎么换行)

    搜狗输入法怎么设置键盘壁纸(搜狗输入法怎么换行)

  • 电视ipoe账号密码是什么(电视账号设置密码忘了怎么办)

    电视ipoe账号密码是什么(电视账号设置密码忘了怎么办)

  • 微信视频号如何涨粉(微信视频号如何开店)

    微信视频号如何涨粉(微信视频号如何开店)

  • 怎么确认这个微信号注销了没(怎么看微信是不是本人注册的)

    怎么确认这个微信号注销了没(怎么看微信是不是本人注册的)

  • 西瓜视频支持投电视吗(西瓜视频支持投影吗)

    西瓜视频支持投电视吗(西瓜视频支持投影吗)

  • 苹果x后压屏与原装差别(苹果x后压屏使用感受)

    苹果x后压屏与原装差别(苹果x后压屏使用感受)

  • 手机录音后播放没声音(手机录音后播放断断续续的)

    手机录音后播放没声音(手机录音后播放断断续续的)

  • 美团评价删除了还能重新评价吗(美团评价删除了还能看到吗)

    美团评价删除了还能重新评价吗(美团评价删除了还能看到吗)

  • 手机号能搜到微博账号吗(手机号能搜到微信小号吗)

    手机号能搜到微博账号吗(手机号能搜到微信小号吗)

  • 手机克隆能把所有软件都带过去吗(手机克隆能把所有的都复制过去)

    手机克隆能把所有软件都带过去吗(手机克隆能把所有的都复制过去)

  • 代表网页文件的扩展名为(代表网页文件的文件名后缀是)

    代表网页文件的扩展名为(代表网页文件的文件名后缀是)

  • 苹果11是玻璃背面吗(苹果11是玻璃背景吗)

    苹果11是玻璃背面吗(苹果11是玻璃背景吗)

  • 苹果x能改双卡吗(怎么看苹果手机是不是双卡)

    苹果x能改双卡吗(怎么看苹果手机是不是双卡)

  • ios13怎么信任描述文件(ios13.7如何信任app)

    ios13怎么信任描述文件(ios13.7如何信任app)

  • vue音乐时长怎么调整(vue音乐淡出怎么设置)

    vue音乐时长怎么调整(vue音乐淡出怎么设置)

  • 苹果手机内存灰色指什么(苹果手机内存灰色的很多怎么办)

    苹果手机内存灰色指什么(苹果手机内存灰色的很多怎么办)

  • 淘宝怎么加入店铺群(淘宝怎么加入店铺会员)

    淘宝怎么加入店铺群(淘宝怎么加入店铺会员)

  • xsmax发热严重(xsmax发热严重卡顿)

    xsmax发热严重(xsmax发热严重卡顿)

  • 抖音怎么锁喜欢的视频(抖音怎么锁喜欢的)

    抖音怎么锁喜欢的视频(抖音怎么锁喜欢的)

  • 打击垫需要电脑吗(打击垫需要电脑操作吗)

    打击垫需要电脑吗(打击垫需要电脑操作吗)

  • 呼到死怎么屏蔽

    呼到死怎么屏蔽

  • 快捷指令app(快捷指令app是干嘛的)

    快捷指令app(快捷指令app是干嘛的)

  • cad分解快捷键(2016版cad分解快捷键)

    cad分解快捷键(2016版cad分解快捷键)

  • 木星增强色彩后的一组镜头 (© Enhanced Image by Gerald Eichstädt and Sean Doran, CC BY-NC-SA, based on images provided Courtesy of NASA/JPL-Caltech/SwRI/MSSS)(木星应该涂什么颜色)

    木星增强色彩后的一组镜头 (© Enhanced Image by Gerald Eichstädt and Sean Doran, CC BY-NC-SA, based on images provided Courtesy of NASA/JPL-Caltech/SwRI/MSSS)(木星应该涂什么颜色)

  • 以房抵债如何计算契税?
  • 行政职工福利费包括哪些内容呢
  • 费用化的研发支出
  • 计提坏账又收回
  • 没开发票的收入可以不入账吗
  • 财产保全包括支付宝吗
  • 使用空头支票被银行冻结
  • 行政事业单位工作经费使用范围
  • 企业开办费用的预算
  • 电力公司安装变压器要多少钱
  • 关于银行借贷的法律知识
  • 普票红冲部分金额的发票怎么开
  • 普票名称错了税号没错
  • 支付职工补贴计入什么科目
  • 个人所得税承租承包经营所得
  • 对公账户分为一般户和基本户
  • 长期待摊费用账户按用途和结构分类应属于
  • 研发和技术服务在开票软件中怎么找
  • 在会计上其他业务是什么
  • 少收的货款怎么入账
  • 小规模纳税人增值税申报表怎么填
  • 什么收入不需要交税0税
  • 电脑开始菜单在右边怎么调回来
  • 工会经费,职工福利费,教育经费的扣除标准
  • 纳税人如何申请延期缴纳税款
  • 暂存款转结余
  • 仙鹤草的功效与作用与主治功能
  • 收益性支出的项目有哪些
  • PHP:preg_quote()的用法_PCRE正则函数
  • php数组函数,选班长
  • 搬迁补偿费如何做账
  • algarin.exe什么意思
  • PHP:mcrypt_module_self_test()的用法_Mcrypt函数
  • element html
  • 政府会计制度固定资产折旧方法
  • st的电机库性能怎么样呢
  • logread命令
  • 预缴和缴纳的区别
  • 企业注销前的账务处理
  • python科学计算库有哪些
  • 出租厂房会计分录怎么写
  • 全面理解健康教案
  • 绿化养护合同交不交印花税
  • 购买的固定资产退回账务处理
  • 企业购入固定资产误计入管理费用
  • 固定资产账务处理候文江视频
  • 固定电话机用装电池吗
  • 经营活动的现金流量占全部现金流量的比重越大
  • 自助餐怎么核算成本
  • 印花税缴款了发票怎么查
  • 高速过路费发票图片
  • 固定资产折旧的会计科目
  • 2021劳动报酬收入个人所得税怎么算
  • 暂估入库可以隔几个月再冲回吗
  • 收入的利息如何计算
  • 脚手架租赁费发票内容开劳务可以吗
  • sql常见的数据类型有哪些
  • sql语句的优化方式
  • win8下载软件
  • ubuntu server教程
  • win8系统进不了桌面怎么办
  • linux 下VSFTP 530 Permission denied错误的解决方法
  • linux使用场合
  • mac如何预览字体大小
  • centos怎么安装
  • win10如何打开defender
  • ie8-ie11浏览器
  • linux虚拟空间
  • cocos2dx drawcall优化
  • opengl教程48讲
  • 快速解决胃胀气
  • 批处理应用实例
  • 批处理清空文本内容
  • js获取上传文件的文件名
  • python socket sendto
  • javascript sort方法排序
  • python操作json字符串
  • 深圳国税电子税务局
  • 三免三减半是什么
  • 北京第六税务所电话号码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设