位置: IT常识 - 正文

全面理解JSX(全面理解健康教案)

编辑:rootadmin
1 简介 JSX(JavaScript XML),即可拓展的JavaScript,是react定义的一种类似于XML的js扩展语法:JS+XML。它本质上是React.createElement(type,config,...children)的语法糖,主要用于创建React元素,生成虚拟DOM 2 ... 1 简介

推荐整理分享全面理解JSX(全面理解健康教案),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:全面理解党的根本宗旨,全面理解和把握新发展理念,全面理解健康教案,全面理解和把握党的二十主题,全面理解和把握党的二十主题,全面理解和把握党的二十主题,全面理解海外利益安全,全面理解总体国家安全观,内容如对您有帮助,希望把文章链接给更多的朋友!

JSX(JavaScript XML),即可拓展的JavaScript,是react定义的一种类似于XML的js扩展语法:JS+XML。它本质上是React.createElement(type,config,...children)的语法糖,主要用于创建React元素,生成虚拟DOM

2 使用jsx

可以使用react脚手架或者引入react与babel相关脚本来体验jsx。这里主要介绍一下后者如何使用

3 jsx语法规则

jsx包括xml格式的标签和jsx表达式{},下面从这两个角度来介绍jsx的语法规则

全面理解JSX(全面理解健康教案)

标签规则

根标签单一且闭合,否则抛出异常标签类名使用className而非class,内联样式的属性名采用小驼峰形式命名 const FC = () => ( <h1 className="font-red"> hello react <span style={{ color: 'blue' }} onClick={() => { alert('click span') }}>inner text</span> </h1> )标签属性都可以使用jsx表达式{},只有字符串可以省略大括号 <h1 className="font-red"> hello react </h1>

jsx表达式规则

{}中必须返回一个值基于1,流程控制与循环语句语句如if、for是不允许的,因为他们默认没有返回值,而逻辑运算符如&&、||、三元表达式是允许的,函数也是允许的,因为它们一定会返回一个值。因此jsx中做逻辑判断的时候优先使用后者。基于2,如果一定要使用if、for,考虑在jsx表达式中使用IIFE <input type="text" value={((type)=>{ if(type === 1){ return 'one' }else if(type === 2){ return 'two' }else{ return '' } })(type)} />对于falsy值,0会被正常渲染到页面,而false,true,null,undefined不会。如果一定要渲染它们,请先转换成字符串。 // 比如下面这段代码会在页面上显示一个不符合期望的0 const FC2 = ({arr}) => <span>{arr.length && arr.join()}</span> ReactDOM.render(<FC2 arr={[]} />, document.getElementById('app'))4 jsx优缺点4.1 优点

js语法在运行时灵活的特性基于js语法拓展,jsx具有js较为灵活的特点

xml在树状结构的表现上较为优秀因为在嵌套层数较深、交互逻辑更复杂的情况下,xml+js比起js直接创建dom或CreateElement等方式来说更人性化、更易于维护

放止XSS DOM注入型攻击jsx会将标签转义为字符串,以防止恶意标签被注入到页面

// 页面上展示文案: <a href="#">inner text<\/a> const FC = ({value}) => <div>{value}</div> ReactDOM.render(<FC value={`<a href="#">inner text<\/a>`} />, document.getElementById('app')) // 页面上出现a标签,DOM被注入 const FC = ({value}) => <div dangerouslySetInnerHTML={{__html:value}}></div> ReactDOM.render(<FC value={`<a href="#">inner text<\/a>`} />, document.getElementById('app'))4.2 缺点

导致项目依赖增多jsx必须依赖babel等编译工具转换成React.createElement才可以正常运行,导致项目依赖增多

5 深入react源码解读jsx到ReactElement

此后,jsx被编译成了React.CreateElement,后面要做的事情就是执行这个方法并创建React元素。对后续细节感兴趣可以看看这篇深入react源码解读jsx到ReactElement

本文链接地址:https://www.jiuchutong.com/zhishi/313037.html 转载请保留说明!

上一篇:织梦SEO专题的制作与优化技巧(织梦建站详细教程)

下一篇:Python学习:property装饰器(pythonproperty)

  • oppo小布语音助手怎么关闭(oppo小布语音助手下载安装)

    oppo小布语音助手怎么关闭(oppo小布语音助手下载安装)

  • 手机淘宝在哪里查看投诉进度(手机淘宝在哪里看等级)

    手机淘宝在哪里查看投诉进度(手机淘宝在哪里看等级)

  • 华为nova7pro是曲面屏手机吗(nova7pro是曲面吗)

    华为nova7pro是曲面屏手机吗(nova7pro是曲面吗)

  • 手机淘宝怎么看总消费(手机淘宝怎么看交易快照)

    手机淘宝怎么看总消费(手机淘宝怎么看交易快照)

  • 天猫精灵方糖和方糖r的区别(天猫精灵方糖和x1区别)

    天猫精灵方糖和方糖r的区别(天猫精灵方糖和x1区别)

  • 微信个人签名怎么设置(微信个人签名怎么删除掉)

    微信个人签名怎么设置(微信个人签名怎么删除掉)

  • 电脑显示时钟快了无法打开网址(电脑显示时钟快了,无法建立私密连接)

    电脑显示时钟快了无法打开网址(电脑显示时钟快了,无法建立私密连接)

  • 主卡可以查副卡的微信吗(主卡可以查副卡的通话记录吗)

    主卡可以查副卡的微信吗(主卡可以查副卡的通话记录吗)

  • 苹果x最近卡顿严重什么情况(苹果x最近卡顿怎么解决)

    苹果x最近卡顿严重什么情况(苹果x最近卡顿怎么解决)

  • 华为下载不了谷歌商店(华为下载不了谷歌地图)

    华为下载不了谷歌商店(华为下载不了谷歌地图)

  • 手机号不是实名怎么查服务密码(手机号不是实名制可以贷款吗)

    手机号不是实名怎么查服务密码(手机号不是实名制可以贷款吗)

  • 抖音的超级乐迷是什么意思(抖音的超级乐迷是什么)

    抖音的超级乐迷是什么意思(抖音的超级乐迷是什么)

  • 苹果密码输错几次永久锁定(苹果密码输错几次)

    苹果密码输错几次永久锁定(苹果密码输错几次)

  • 苹果怎么显示日期(苹果怎么显示日期在屏幕上)

    苹果怎么显示日期(苹果怎么显示日期在屏幕上)

  • 移动卡显示hd扣费吗(移动卡显示hd1是什么意思)

    移动卡显示hd扣费吗(移动卡显示hd1是什么意思)

  • 苹果x广角镜头在哪(苹果x广角镜头怎么开)

    苹果x广角镜头在哪(苹果x广角镜头怎么开)

  • 作业帮怎么设置拍整页(作业帮怎么设置小窗口)

    作业帮怎么设置拍整页(作业帮怎么设置小窗口)

  • 苹果xsmax有什么功能(苹果xsmax有什么特别的功能)

    苹果xsmax有什么功能(苹果xsmax有什么特别的功能)

  • 苹果7电池显示维修(苹果7电池显示75要更换吗)

    苹果7电池显示维修(苹果7电池显示75要更换吗)

  • qq音乐怎么存到itunes(qq音乐怎么存到文件里)

    qq音乐怎么存到itunes(qq音乐怎么存到文件里)

  • DWG图形图块怎么隐藏(dwg画图)

    DWG图形图块怎么隐藏(dwg画图)

  • dau是什么(dau是什么意思)

    dau是什么(dau是什么意思)

  • realme手机是哪家公司的(realme是哪家的)

    realme手机是哪家公司的(realme是哪家的)

  • 苹果只能关机充电(iphone手机只能关机充电)

    苹果只能关机充电(iphone手机只能关机充电)

  • win11环境变量在哪?Windows11环境变量设置方法(window10环境变量)

    win11环境变量在哪?Windows11环境变量设置方法(window10环境变量)

  • 苹果iphone6s Plus怎么关闭应用推送通知(苹果iphone6s plus打电话没有人名)

    苹果iphone6s Plus怎么关闭应用推送通知(苹果iphone6s plus打电话没有人名)

  • 蒙特利尔的乌林鸮,加拿大 (© rollandgelly/Getty Images)(蒙特利尔 攻略)

    蒙特利尔的乌林鸮,加拿大 (© rollandgelly/Getty Images)(蒙特利尔 攻略)

  • 企业当期应纳增值税
  • 国有独资企业是国企吗
  • 加工承揽属于劳务关系吗
  • 银行存单丢失怎么办理取款
  • 生产企业的基础设施是指
  • 预提费用在资产负债表哪个科目
  • 税务局三代手续费政策
  • 非专利技术转让计入什么科目
  • 合同成本在哪个科目列支
  • 销售商品,提供服务以及从事其他经营活动
  • 固定资产遭受自然灾害账务处理
  • 预提费用账户期末
  • 开票显示错误信息是怎么回事
  • 年底没计提年终奖,下一年发放要怎么做
  • 货物运输企业在运输货物时应当尽可能采用
  • 购进货物用于免征增值税项目
  • 自产自销农产品企业所得税
  • 小规模季度超了9万怎么报增值税
  • 单位住房没有房产证是否可以买卖
  • 红字发票勾选平台里有吗
  • 未开票增值税怎么申报
  • 购买软件会计账务处理
  • 供应商已注销欠的发票怎么办?
  • 收到增值税红字发票怎么入账
  • PHP:pg_lo_import()的用法_PostgreSQL函数
  • 处理固定资产的账务处理
  • 编制合并报表的三种理论
  • 哪一个国家有大提顿国家公园
  • err03 failed to
  • css3知识总结
  • 工会经费怎么上缴
  • 织梦使用教程
  • 固定资产投资入股是否缴纳增值税
  • 应收账款计提坏账准备是什么意思
  • dev怎么保存项目
  • 机关党建经费提取比例
  • 研发费用计入什么表
  • mysql的my.ini配置
  • mysql数据库的设计与实现
  • 一张发票能分开做帐务处理吗?
  • 房地产企业增值税预征率
  • 应付账款借方如何重分类会计科目
  • 出口不退税进项税是否可以抵扣
  • 网上代增值税专用发票
  • 利润分配未分配利润是净利润吗
  • 工业企业销售分录
  • 汽车销售行业印章要求
  • 把公司土地转让合法吗
  • 政府会计制度之1613在建工程
  • 固定资产折旧的会计科目
  • 企业比赛奖金要交税吗
  • 预提费用如何做账务处理
  • 各类奖金正确的排序
  • 买二手设备需要签合同吗
  • 报销单填写发票第几页交给财务
  • 企业负担的差旅费
  • 固定资产原值如何计算
  • 如何调整银行存款余额
  • 哪些税费计入税金及附加科目
  • 会计往来账怎么用excel做更快
  • 营业执照经营范围怎么变更
  • window windows10
  • apt-key
  • win10的ubuntu
  • linux内核模块编译步骤
  • linux 解析
  • 组策略配置锁屏
  • mac快捷功能
  • Linux下查看某一个程序所使用的内存方法
  • spoffice是什么意思
  • host文件没有
  • windows允许访问
  • win8怎么固定桌面图标
  • win8上不了网
  • r语言和python画图
  • div自动适应宽度
  • nodejs yield
  • unity mesh bounds
  • 北京办理税务登记的地方
  • 河北省国家税务总局云办税厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设