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

  • 留抵税额退税怎么做账
  • 个体工商户工商年报资金数额填啥
  • 施工项目预缴税率是多少
  • 个人私活 要交个人所得税吗
  • 设备转产需要停止折旧吗
  • 投资性房地产递延所得税资产怎么算
  • 一般纳税人劳务费税率是13还是6
  • 待摊费用和预提费用是按照什么而设置的账户
  • 税法对固定资产大修理
  • 可转换债券发行主体
  • 收到应收的货款的会计分录
  • 其他业务收入记账凭证怎么写
  • 供电局发票金额可以多开吗
  • 分摊材料成本差异率怎么算
  • 劳保用品会计科目是什么
  • 生育津贴做账法会计准则
  • 对方公司开支票怎么办
  • 国资委是什么
  • 个体户定期定额申报表怎么填
  • 公司向个人购买服务
  • 1697510552
  • 开票金额比收入高怎么办
  • 完工百分比法确认收入应注意的问题
  • win10桌面网络图标怎么调出来
  • 如何进行网络测试网速测试
  • 上个月多计提的费用怎么调整
  • 民办非企业的注册资金最低限额
  • 冲减预付账款会计分录
  • 公司入股的钱叫什么
  • PHP:preg_last_error()的用法_PCRE正则函数
  • php注册功能的实现
  • 个人独资企业怎么做账
  • 相关企业之间的竞争
  • 公司收到社保局的提醒函怎么办
  • 长期股权投资会减值吗
  • php设计模式六大原则
  • 帝国cms更换编辑器
  • 行政事业单位固定资产划拨账务处理
  • 公司帮非公司员工缴税
  • 企业贷款利息可以开发票吗
  • 非流动资产基金属于什么科目
  • 土地增值税扣除项目20%
  • 购进已经折旧提完的二手车
  • 错开发票所需要提供的资料和时效要求是?
  • 固定资产折旧计算表模板
  • 固定资产哪几类
  • 小微企业缴纳增值税的账务处理
  • 支付利息的现金流
  • 计提生产经营所得
  • 直接减免增值税的情形
  • 冲暂估的差异放在哪里
  • 银行利息回单怎么报账审核
  • 往来账目
  • 未分配利润高怎么解释
  • 哪些税费计入管理费用
  • 库存现金盘点表监盘人是谁
  • sql排序分组
  • win7一键升级到win10
  • win预览版计划
  • 最新bios界面
  • Win10 Insider 10565去除快捷方式小箭头的方法
  • won10安装
  • 防止电脑死机
  • win7系统无法开机解决方法
  • win10搜索不到无线网卡
  • 迅雷看看电脑版 下载
  • win8怎么开启蓝牙
  • jquery滑动触发事件
  • 为什么要建立文明城市
  • glslpe
  • 如何用jquery
  • dota2 服务器ip地址
  • python各种函数
  • unity3d有什么用
  • 税务分局是什么意思
  • 北京税务局地税电话
  • 日常生活中有哪些税
  • 存量房交易税费申报表是契证吗
  • 铜陵职业技术学院专业
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设