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

  • 真我q3s怎么调字体大小(真我q3手机文字怎么设置)

    真我q3s怎么调字体大小(真我q3手机文字怎么设置)

  • 苹果11怎么打开闪光灯(苹果11怎么打开电量百分比)

    苹果11怎么打开闪光灯(苹果11怎么打开电量百分比)

  • word文字底色怎么取消(word文字底色怎么变成透明)

    word文字底色怎么取消(word文字底色怎么变成透明)

  • 钉钉高级认证有什么用(钉钉高级认证有什么特殊功能)

    钉钉高级认证有什么用(钉钉高级认证有什么特殊功能)

  • qq怎样关闭截屏分享(怎么关闭qq截图)

    qq怎样关闭截屏分享(怎么关闭qq截图)

  • 腾讯会议退出来会有记录吗(腾讯会议退出来再进去会记录时长)

    腾讯会议退出来会有记录吗(腾讯会议退出来再进去会记录时长)

  • 大写锁定已打开是什么意思(大写锁定已打开卡在桌面)

    大写锁定已打开是什么意思(大写锁定已打开卡在桌面)

  • 快手账号注销了别人还看得到吗(快手账号注销了好友可以看到吗)

    快手账号注销了别人还看得到吗(快手账号注销了好友可以看到吗)

  • 显卡和内存条有关系吗(显卡和内存条有什么区别)

    显卡和内存条有关系吗(显卡和内存条有什么区别)

  • 腾讯视频验证码怎么输都是错的(腾讯视频验证码登录在哪里)

    腾讯视频验证码怎么输都是错的(腾讯视频验证码登录在哪里)

  • 手机号注销后还能查到个人信息吗(手机号注销后还能查出身份吗)

    手机号注销后还能查到个人信息吗(手机号注销后还能查出身份吗)

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

    vmware是什么(vmware是什么意思)

  • 苹果11怎么用两个微信(苹果11怎么用两个桌面设置)

    苹果11怎么用两个微信(苹果11怎么用两个桌面设置)

  • 哪款智能音箱支持粤语(哪款智能音箱支持5g网络)

    哪款智能音箱支持粤语(哪款智能音箱支持5g网络)

  • 视角缩放是什么意思(视角缩放是啥)

    视角缩放是什么意思(视角缩放是啥)

  • 淘宝pc页面是什么意思(淘宝pc端叫什么)

    淘宝pc页面是什么意思(淘宝pc端叫什么)

  • i5-8250u是什么性能(i5-8250u属于什么水平)

    i5-8250u是什么性能(i5-8250u属于什么水平)

  • 手机流量1g等于多少gb(手机流量1g等于多少mb电信)

    手机流量1g等于多少gb(手机流量1g等于多少mb电信)

  • 手机无线密码怎么查看(手机无线密码怎么显示出来)

    手机无线密码怎么查看(手机无线密码怎么显示出来)

  • 华为nova4超广角怎么打开(nova4e广角如何打开)

    华为nova4超广角怎么打开(nova4e广角如何打开)

  • 热点资讯怎么设置不出界面(手机的热点资讯)

    热点资讯怎么设置不出界面(手机的热点资讯)

  • word页面整体偏左怎么办(word页面整体偏右)

    word页面整体偏左怎么办(word页面整体偏右)

  • vetas是什么牌子(vETAS是什么牌子手机)

    vetas是什么牌子(vETAS是什么牌子手机)

  • 苹果手机怎么给短信加密码(苹果手机怎么给公交卡充值)

    苹果手机怎么给短信加密码(苹果手机怎么给公交卡充值)

  • 出国后微信还能用吗(出国后微信还能加好友吗)

    出国后微信还能用吗(出国后微信还能加好友吗)

  • 解决 Uncaught SyntaxError: Unexpected token ‘<‘ 解决方法(解决脱发的8个方法)

    解决 Uncaught SyntaxError: Unexpected token ‘<‘ 解决方法(解决脱发的8个方法)

  • 【ROS2&AI】电脑摄像头、intel-D435,利用ros2发布订阅图像(Python)(ros 2)

    【ROS2&AI】电脑摄像头、intel-D435,利用ros2发布订阅图像(Python)(ros 2)

  • win11 KB5023774更新后无法打开荒野大镖客2怎么办? 微软提供临时且唯一的解决方案(win11更新22468)

    win11 KB5023774更新后无法打开荒野大镖客2怎么办? 微软提供临时且唯一的解决方案(win11更新22468)

  • 计提附加税的金额怎么算
  • 夏天单位发防暑物品的通知
  • 为改良生产线发生的变化
  • 税务信用级别为m级
  • 固定资产升值可以入账吗?
  • 销售折让开具红字
  • 民非组织捐赠收入免税
  • 离境退税政策文件
  • 权益法下股权投资
  • 公司改变工资结构变相降工资怎么办
  • 返利回收期怎么计算
  • 其他贷款服务的内容包括
  • 小企业盈余公积弥补亏损分录
  • 建安费增值税怎么算
  • 简易计税方法是什么意思
  • 公司当年福利费没有用到限额,可以按照14%计提税前扣除吗?
  • 农产品增值税免税政策
  • 当期的费用
  • 长期待摊费用多少钱
  • 股东撤资退出
  • 资产负债表中的货币资金怎么算
  • linux i
  • 扣扣斗图在哪里设置
  • 劳务资质办理需要什么条件
  • musirc4.71.exe - musirc4是什么进程文件 有什么作用
  • 字体文件夹在哪
  • 发票开错了怎么处理好?
  • 事业单位在建工程会计账务处理
  • 旅游企业会计ppt
  • 商标个性设计
  • 固定资产修理支出准予扣除吗
  • 利润表的营业收入是开票金额吗
  • 六自由度机器人简图
  • 如何解决Vue3没有代码提示问题?
  • php测验
  • 什么叫含税和未含税区别
  • 应收账款减值损失计入
  • 普票退货需要开红字信息表吗
  • 公司进项抵税
  • 长期股权投资核算的权益法包括哪些内容
  • 增值税哪些行业不能抵扣
  • 普通发票上的银行账户有规定吗
  • 商品流通企业的进货费用
  • 现时社保缴费
  • 餐饮行业的个体工商户怎么交税
  • 政府补助收入的会计处理
  • 库存股属于什么类科目,借贷方向
  • 水电发票如何开
  • 汇算清缴期间费用福利费填哪里
  • 销售固定资产如何申报企业所得税
  • 购买材料计入
  • 财务报表分析的主体是
  • 现金流量的折现值公式
  • 会计里面权益是什么
  • 什么叫脚本错误
  • wintogo.exe
  • 盗版xp黑屏的解决办法
  • load its core dll
  • awk中使用sed
  • Linux VPS中rar、unrar命令安装和使用详解
  • 工商网银安装
  • 关闭windows游戏
  • 如何解决windows不是正版的问题
  • cocos3.0
  • perl keys
  • jquery图片轮播无缝连接
  • jQuery+ajax的资源回收处理机制分析
  • pygame rect.move
  • js实现商品分类
  • 济南槐荫税务局办税大厅电话
  • 资源税的税目有7个,其中不包括
  • 互城通怎么用微信充值
  • 东莞市国税局南城莫
  • 个人以土地投资入股都需缴纳哪些税
  • 贵州省国家税务局
  • 河南林州在哪三省交界处
  • 溧水到南京南地铁大站快车时刻表
  • 中国的消费税率是多少
  • 双休日可以拿房产证吗
  • 个体户国税地税怎么交
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设