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

  • 抖音极速版和抖音火山版的区别在哪里(抖音极速版和抖音账号互通吗)

    抖音极速版和抖音火山版的区别在哪里(抖音极速版和抖音账号互通吗)

  • 小米手机如何删除通话记录(小米手机如何删除应用行为记录)

    小米手机如何删除通话记录(小米手机如何删除应用行为记录)

  • 摄像头可以伸缩的手机(摄像头可以伸缩的老款手机)

    摄像头可以伸缩的手机(摄像头可以伸缩的老款手机)

  • 华为拉黑名单还能收到短信(华为拉黑名单还能收到正常短信)

    华为拉黑名单还能收到短信(华为拉黑名单还能收到正常短信)

  • word怎么合并(word怎么合并成一页)

    word怎么合并(word怎么合并成一页)

  • 华为手表首次充电要求(华为手表首次充电就冲一会就不充了)

    华为手表首次充电要求(华为手表首次充电就冲一会就不充了)

  • windows7中的什么有三种类型(Windows7中的什么主要用来进行网络管理)

    windows7中的什么有三种类型(Windows7中的什么主要用来进行网络管理)

  • wps做的ppt用office打不开(wps做的ppt用office 音乐放不出来)

    wps做的ppt用office打不开(wps做的ppt用office 音乐放不出来)

  • 支付宝怎么解绑银行卡(支付宝怎么解绑亲情卡)

    支付宝怎么解绑银行卡(支付宝怎么解绑亲情卡)

  • 为什么qq空间验证码输入后请稍后再试(为什么qq空间验证码)

    为什么qq空间验证码输入后请稍后再试(为什么qq空间验证码)

  • 苹果手表5能测血压吗(苹果手表5能测什么)

    苹果手表5能测血压吗(苹果手表5能测什么)

  • 拼多多揽件超时罚款多少(拼多多揽件超时是12小时还是24小时)

    拼多多揽件超时罚款多少(拼多多揽件超时是12小时还是24小时)

  • vivoz5x什么时候上市(vivoz5x什么时候更新originos2.0)

    vivoz5x什么时候上市(vivoz5x什么时候更新originos2.0)

  • ps可选颜色选项在哪(ps可选颜色在哪里)

    ps可选颜色选项在哪(ps可选颜色在哪里)

  • word2007生成目录怎么弄(word2003如何生成目录)

    word2007生成目录怎么弄(word2003如何生成目录)

  • 荣耀原相机怎么调滤镜(荣耀原相机怎么关美颜)

    荣耀原相机怎么调滤镜(荣耀原相机怎么关美颜)

  • 红米note8pro怎么设置手电筒快捷键(红米note8pro怎么恢复出厂设置)

    红米note8pro怎么设置手电筒快捷键(红米note8pro怎么恢复出厂设置)

  • word中的标题占位符在哪(word标题占几行怎么设置)

    word中的标题占位符在哪(word标题占几行怎么设置)

  • 小米手环3和小米手环4表带是一样的吗(小米手环3和小米手环3nfc区别)

    小米手环3和小米手环4表带是一样的吗(小米手环3和小米手环3nfc区别)

  • 支付宝智能设备在哪里(支付宝智能设备怎么改名字)

    支付宝智能设备在哪里(支付宝智能设备怎么改名字)

  • 小米8怎么取消呼叫转移(小米8怎么取消root权限)

    小米8怎么取消呼叫转移(小米8怎么取消root权限)

  • 如何做好网络安全防范(如何做好网络安全管理工作)

    如何做好网络安全防范(如何做好网络安全管理工作)

  • 0x80070057错误原因(0x80070057错误原因无法复制word文档)

    0x80070057错误原因(0x80070057错误原因无法复制word文档)

  • 机械键盘轴的区别声音(机械键盘轴的区别图)

    机械键盘轴的区别声音(机械键盘轴的区别图)

  • vue项目国际化(使用vue-i18n)(vue国际化解决方案)

    vue项目国际化(使用vue-i18n)(vue国际化解决方案)

  • 一般纳税人收到普票如何入账
  • 个人所得税网上申报
  • 耕地占用税计入无形资产吗
  • 开诊所会计如何做账
  • 发票用完了领发票需要带什么东西
  • 承兑汇票能直接兑换吗
  • 增值税电子发票能抵税吗
  • 商业承兑汇票托收凭证怎么做分录
  • 长期股权投资的减值准备的会计处理
  • 总资产现金回收率是什么与什么平均余额的比
  • 属于制造费用的有
  • 废品计入哪个科目
  • 销售合同总金额含税还是不含税
  • 合伙企业出资额不计入实收资本和资本公积 那放哪
  • 白酒的消费税怎样计算
  • 预缴的个人所得税会计分录
  • 普通股资本成本计算方法
  • 发票显示上传失败
  • 生产企业办理出口退税时要提供发票吗
  • 样品开发费用怎么记账
  • 超市预付卡发票如何入账
  • 红利抵免的用法是什么
  • 销售折扣在备注栏注明的可以扣除吗
  • 上月没交社保本人能交吗
  • 冲销应收账款怎么记账
  • 计提小规模增值税怎么做账
  • yoosee怎么安装
  • 怀特岛郡国旗
  • 广告费的会计科目
  • php教程 ftp 函数
  • php获取ftp文件目录
  • 结算劳务外包的工作内容
  • 龙舌兰 (© Moab Republic/Shutterstock)
  • 一维卷积padding
  • 金蝶科目明细表
  • 在php中,字符串有哪些表示形式
  • 转账支票购买办公用品一批,共计600元
  • python中函数的用法
  • 公司注销时多缴税怎么办
  • 个税申报方式是什么意思
  • 取得土地使用权所支付的金额包括契税吗
  • 公司一年的账目怎样算
  • 装修公司财务报表图片
  • sql查询语句大全实例教程
  • 企业微信开通微信支付
  • 工程外经证预缴税款计税方法
  • 残疾人保障金为负数
  • 通货膨胀有什么表现
  • 开具红字发票后所冲销的销项税应该怎么处理?
  • 从工程款中扣除质保金
  • 公司注销其他应收款余额要交税吗
  • 农产品计算抵扣税率 最新
  • 分包抵扣金额
  • 无形资产摊销怎么做记账凭证
  • 电费发票应收电费怎么开
  • win mysql
  • linux系统讲解
  • centos安装类型选择
  • win8wifi受限
  • xp系统分区工具
  • win10 Build 10565中Edge浏览器新增对HTML5视频的播放控制及下载
  • win7 64位系统双击桌面所有程序提示"文件没有与之关联的程序来执行"的解决方法
  • win7系统安装的配置要求有什么
  • linux补丁工具
  • Win10计算机管理该文件没有与之关联的应用
  • dos怎么上网
  • cocos creator内存性能优化
  • opengl光照算法
  • js setmap
  • dos批处理实例800例
  • 猫的所有视频
  • js验证身份证合法性
  • 安卓手机管家推荐
  • linux给本地用户发邮件
  • 简述javascript原型和原型链有什么特点?
  • 天河地税局局长简介
  • 四川国家税务局官网
  • 什么叫以物易物
  • 新车购置税是在4s店交吗
  • 增值税可以抵扣多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设