位置: 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)

  • vivox70pro颜色有哪些(vivox70pro配色)

    vivox70pro颜色有哪些(vivox70pro配色)

  • 来电话时闪光灯闪烁怎么关闭(来电话时闪光灯闪烁怎么设置苹果)

    来电话时闪光灯闪烁怎么关闭(来电话时闪光灯闪烁怎么设置苹果)

  • penm00是oppo什么型号(oppo perm00是什么型号手机)

    penm00是oppo什么型号(oppo perm00是什么型号手机)

  • 抖音名怎么改不了(抖音名改不了,显示已被认证)

    抖音名怎么改不了(抖音名改不了,显示已被认证)

  • 华为p40支持nfc功能吗(华为p40可以nfc)

    华为p40支持nfc功能吗(华为p40可以nfc)

  • 华为nova5i充电器型号(华为nova5i充电器型号图片)

    华为nova5i充电器型号(华为nova5i充电器型号图片)

  • 充电宝能给充电宝充电吗(充电宝)

    充电宝能给充电宝充电吗(充电宝)

  • 苹果id被锁定是什么意思(苹果id锁了怎么解除)

    苹果id被锁定是什么意思(苹果id锁了怎么解除)

  • 苹果x电池发热怎么解决(iphone x电池发热)

    苹果x电池发热怎么解决(iphone x电池发热)

  • 微信清除数据后怎么才能恢复以前的信息(微信清除数据后怎么恢复聊天记录)

    微信清除数据后怎么才能恢复以前的信息(微信清除数据后怎么恢复聊天记录)

  • 高压变频器的工作原理(高压变频器的工作特性)

    高压变频器的工作原理(高压变频器的工作特性)

  • 微信群怎么发10分钟视频(微信群怎么发10个红包)

    微信群怎么发10分钟视频(微信群怎么发10个红包)

  • 华为p40系列什么时候开售(华为P40系列什么时候发布)

    华为p40系列什么时候开售(华为P40系列什么时候发布)

  • md514ch/a是ipad几代(md514zp/a是ipad几代)

    md514ch/a是ipad几代(md514zp/a是ipad几代)

  • ios13.3屏幕失灵(ios13.7屏幕失灵)

    ios13.3屏幕失灵(ios13.7屏幕失灵)

  • 数据库管理系统是一种什么软件(数据库管理系统中负责查询操作的数据库语言)

    数据库管理系统是一种什么软件(数据库管理系统中负责查询操作的数据库语言)

  • wps删除空白页删不掉(wps怎么删除空白页)

    wps删除空白页删不掉(wps怎么删除空白页)

  • vue视频可以加字幕吗(vue怎么在视频里加图片)

    vue视频可以加字幕吗(vue怎么在视频里加图片)

  • 苹果手机怎么解压rar(苹果手机怎么解除自动续费功能)

    苹果手机怎么解压rar(苹果手机怎么解除自动续费功能)

  • 抖音的标题怎么复制(抖音的标题怎么才能不动)

    抖音的标题怎么复制(抖音的标题怎么才能不动)

  • 毒买了鞋可以退款吗(毒买的鞋不能退)

    毒买了鞋可以退款吗(毒买的鞋不能退)

  • 华为note3的前置摄像头像素是多少(nove3前置摄像头)

    华为note3的前置摄像头像素是多少(nove3前置摄像头)

  • 抖音里怎么弄逗拍(抖音上是怎么逗siri的)

    抖音里怎么弄逗拍(抖音上是怎么逗siri的)

  • 一加7没有耳机孔怎么办(一加7没有耳机孔)

    一加7没有耳机孔怎么办(一加7没有耳机孔)

  • qq音乐个人昵称怎么改(qq音乐人名字)

    qq音乐个人昵称怎么改(qq音乐人名字)

  • 删除文件需要管理员权限怎么解决?(删除文件需要管理员权限无法添加怎么办)

    删除文件需要管理员权限怎么解决?(删除文件需要管理员权限无法添加怎么办)

  • 固定资产进项税的账务处理
  • 月收入10万以下免税哪些企业适用
  • 工业企业应缴纳的税金有哪些
  • 计提个税会计科目怎么做
  • 个人所得税计算器
  • 什么叫欠账
  • 油费补贴计入什么科目
  • 怎么查对方一个月去了什么地方
  • 企业所得税汇算清缴申报表
  • 退货款现金流量表填经营活动的什么科目
  • 公司向股东借款计入什么科目
  • 雇主责任险是否属于财产保险
  • 增值税普通发票税率
  • 企业所得税清算期间
  • 红字发票怎么申报?
  • 税控盘超期还能清卡吗
  • 主办会计和会计助理的区别
  • 小微企业税收优惠政策最新2023
  • 部队医院学校都没有税号吗
  • 转账支票到期了怎么兑现
  • 电脑桌面点击鼠标右键就闪退
  • 怎么取消网络手动连接
  • 来电转接怎么设置空号
  • php值传递和引用传递 原理
  • imac 5k屏幕参数
  • php字符串定义
  • PHP:stream_get_contents()的用法_Stream函数
  • 代开专用发票缴纳增值税需要计提吗?
  • 公司转让债务债权协议
  • 居民企业境外所得税抵免限额
  • 分支机构可以不分配所得税吗?
  • PHP中使用什么关键字声明变量的作用域为全局
  • sql批量替换值
  • mongodb介绍
  • 运费发票有普票吗
  • 发票开具内容与实际经营范围不符是否合适呢?
  • 企业电子发票申请流程2023版
  • 房产税从租和从价都要交吗
  • 购进废旧物资进项税额
  • 企业的预付账款属于金融资产吗
  • 增值税发票红冲的相关规定
  • 主营业务成本是什么科目
  • 公司注销前的发票怎么查
  • 商业承兑汇票如何承兑?
  • 金税三期升级功能2020
  • 长期投资损失
  • 维护费抵减增值税会计科目
  • 检测公司成本科目
  • 工资表明细表
  • 负数发票要给税务局吗
  • 建筑工程拨款申请模板
  • 培训费产生的差额怎么算
  • 会计处理是会计分录吗
  • sql server Bulk Insert命令详细
  • Win7 64位 mysql 5.7下载安装常见问题小结
  • centos7如何设置中文
  • ubuntu系统中文
  • win8删除所有内容
  • centos control-d
  • win10红石版
  • mom.exe是什么进程
  • onekey.exe是什么
  • usb转串口的接线方法
  • TestOpenGL
  • node.js批量添加数据
  • python的pip安装命令
  • python中OrderedDict的使用方法详解
  • 脚本合集
  • 协程有什么用
  • js querySelector() 使用方法
  • javaScript NameSpace 简单说明介绍
  • 浅析我国国防现状
  • activity之间的数据回传
  • 计算字符串的长度的函数
  • 预拍摄功能相机
  • jquery字符转数字
  • 怎么向税局举报
  • 福州房管局网签查询
  • 甘肃税务网上办税服务厅
  • 审计双轨制什么意思
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设