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

  • 华为位置共享怎么找到对方(华为位置共享怎么关闭)

    华为位置共享怎么找到对方(华为位置共享怎么关闭)

  • 苹果x充电功率(苹果x 充电功率)

    苹果x充电功率(苹果x 充电功率)

  • 用数据线怎么投屏到电视(用数据线怎么投屏)

    用数据线怎么投屏到电视(用数据线怎么投屏)

  • 微视支持自定义音乐吗(微视支持自定义播放吗)

    微视支持自定义音乐吗(微视支持自定义播放吗)

  • 苹果手机更新软件大于200m怎么办(苹果手机更新软件为什么总显示以前的id)

    苹果手机更新软件大于200m怎么办(苹果手机更新软件为什么总显示以前的id)

  • POS机是什么(0.38pos机是什么)

    POS机是什么(0.38pos机是什么)

  • 黄绿红三相电怎么排(黄绿红三相电怎么接独立电表)

    黄绿红三相电怎么排(黄绿红三相电怎么接独立电表)

  • 苹果8换了外屏原彩消失了(苹果8换了外屏没反应)

    苹果8换了外屏原彩消失了(苹果8换了外屏没反应)

  • 在微机中目前最常用的字母与字符的编码是(目前在微机中最普遍采用的字符的编码是)

    在微机中目前最常用的字母与字符的编码是(目前在微机中最普遍采用的字符的编码是)

  • soul主页可见什么意思(soul 主页可见)

    soul主页可见什么意思(soul 主页可见)

  • 电脑开机cpu风扇不动(电脑开机cpu风扇转一下就停又转一下)

    电脑开机cpu风扇不动(电脑开机cpu风扇转一下就停又转一下)

  • 在word中目录可以通过什么选项插入(word中目录可以显示关键字吗)

    在word中目录可以通过什么选项插入(word中目录可以显示关键字吗)

  • 纸质照片是什么照片(纸质照片是什么样子的图片)

    纸质照片是什么照片(纸质照片是什么样子的图片)

  • 快手直播a类永久封播可以解决吗(快手直播a类b类c类什么意思)

    快手直播a类永久封播可以解决吗(快手直播a类b类c类什么意思)

  • iphone尚未备份需不需要关闭(ipone 尚未备份)

    iphone尚未备份需不需要关闭(ipone 尚未备份)

  • 拼多多加好友是干嘛的(拼多多加好友是本人发的吗)

    拼多多加好友是干嘛的(拼多多加好友是本人发的吗)

  • iphone11小白点怎么设置(iphone11小白点怎么设置返回上一级)

    iphone11小白点怎么设置(iphone11小白点怎么设置返回上一级)

  • 华为手机微信支付怎么刷脸(华为手机微信支付设置在哪里)

    华为手机微信支付怎么刷脸(华为手机微信支付设置在哪里)

  • 为什么微信附近人里面没有自己(为什么微信附近人打招呼别人看不到)

    为什么微信附近人里面没有自己(为什么微信附近人打招呼别人看不到)

  • 苹果7p来电闪光灯怎么设置(苹果7p来电闪光灯怎么开启)

    苹果7p来电闪光灯怎么设置(苹果7p来电闪光灯怎么开启)

  • 微信电话声音断断续续(微信语音电话响铃断断续续)

    微信电话声音断断续续(微信语音电话响铃断断续续)

  • 华为返回键怎么显示出来(华为返回键怎么换边)

    华为返回键怎么显示出来(华为返回键怎么换边)

  • 快手里该账号已重置是什么意思(下载原来的快手号)

    快手里该账号已重置是什么意思(下载原来的快手号)

  • 手机淘宝怎么进群(手机淘宝怎么进入卖家中心)

    手机淘宝怎么进群(手机淘宝怎么进入卖家中心)

  • 优酷下载的视频怎么保存到手机相册(优酷下载的视频在什么位置)

    优酷下载的视频怎么保存到手机相册(优酷下载的视频在什么位置)

  • findx标配快充多少w(findx快充多少w)

    findx标配快充多少w(findx快充多少w)

  • 电脑怎么连手机热点网(电脑怎么连手机wifi个人热点)

    电脑怎么连手机热点网(电脑怎么连手机wifi个人热点)

  • oppoa5屏幕指纹(oppoa57指纹)

    oppoa5屏幕指纹(oppoa57指纹)

  • opporenoz上市时间(opporenoz发售价格)

    opporenoz上市时间(opporenoz发售价格)

  • 小米标记广告如何取消(小米广告牌)

    小米标记广告如何取消(小米广告牌)

  • 暂时进出境货物和暂准进出境货物
  • 增值税如何进行税收筹划
  • 资产损失税前扣除管理办法
  • 经营性现金净流量为负数怎么解释
  • 建筑业跨区域预缴增值税
  • 进项税额转出会影响利润吗
  • 个体户的附加税表怎么填写
  • 研发费用可以计入哪个科目
  • 房产出租增值税税目
  • 经营性应收项目和经营性应付项目
  • 房地产公司土地价款抵扣的账务处理
  • 资产负债表试算平衡表是什么
  • 上市公司股票增持是什么回事
  • 政府奖励企业款银行未收到会计分录
  • 企业长期待摊费用包括
  • 预收房款缴所得税会计分录怎么写?
  • 退休人员返聘工资怎么缴税
  • 营改增之后账务怎么处理
  • 公司如何向税务部门举报
  • 没有建筑资质能办安全生产许可证吗
  • 为什么中国没有工业革命
  • 加计扣除需要注意的几大风险点
  • 以前年度损益调整属于哪类科目
  • 腾讯手游助手怎么卸载
  • 公司出售车辆
  • 手游穿越火线怎么设置自动开火
  • 捷波主板141m
  • 误删的文件怎么撤回
  • win11中文安装包
  • php限制登录次数
  • 高新技术企业如何在电子税务局备案
  • 汇兑应计入哪个科目
  • 固定资产清理主要核算什么
  • 劳务公司差额计税的税率
  • 建筑会计和会计的区别
  • vue实战开发项目视频
  • 人工智能怎么做出来的
  • php输出空格语句
  • php正则匹配网址
  • md5 linux
  • 捐赠商品分录
  • phpcms使用教程
  • 建筑设备租赁如何交税
  • 应收账款余额百分比法与账龄分析法有何异同
  • 技术安装工人包食宿
  • 固定资产折旧的影响因素
  • 金税四期对增值税专票
  • 服务费发票的税率
  • 亏损企业研发费用必须加计扣除吗
  • 破产清算应收账款怎么评估
  • 应收账款多久收不回来作为坏账
  • 小规模纳税人购进商品会计分录
  • 电力安装工程合同税率能开13%
  • 分类不同
  • sqlserver数据库和mysql区别
  • my sql命令
  • windows vista如何升级
  • 配置windows server 2008
  • freebsd常用命令
  • window7 aero
  • 怎么清理win7
  • centos无法挂载位置
  • win7电脑dpi怎么设置800
  • win10系统如何去除记住密码
  • 新手如何入门
  • win10开启预览
  • cocos2dx 3.5 ”hello world“解析
  • cocos做游戏
  • time(0)函数
  • js oncontextmenu事件使用详解
  • html lang属性
  • 安卓网络编程面试题
  • python 检测主机存活
  • angularjs1.5
  • python str()怎么用
  • fragment详解
  • 河南医疗保险网上怎么缴费截止时间
  • 开票日期是今年但是业务是去年
  • 宁波北仑有哪些服装厂
  • 车船使用税是什么样的单子
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设