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

  • 小饭店税务登记证办理流程
  • 工会经费的会计核算方法
  • 印花税技术服务合同按什么交
  • 全额计提坏账准备后,多久核销应收账款
  • 小规模什么情况下只交城建税
  • 社团组织缴纳的社保
  • 小微企业增值税减免账务处理
  • 个人名义购房
  • 辞退员工补偿金账务处理
  • 防伪税控开票系统技术维护费
  • 返聘已退休人员是否需要缴纳社保
  • 收到托收凭证怎么填写
  • 公司租金收入交多少税
  • 股东变动及股东情况章节
  • 公司为员工买保险好还是个体户为员工买保险好
  • 监控维护需要什么经营范围
  • 税法关于劳务费用的规定
  • 非住宅过户税费标准最新
  • 外资租赁房屋房产税和土地使用税怎么申报?
  • 股权转让未分配利润如何账务处理
  • 发生可抵扣暂时性差异是调增还是调减
  • 当无法取得对应报价时,将以即时现价报单
  • 审计完结凭证要盖公章吗
  • 鸿蒙系统超级终端手机连手机
  • 静默安装命令
  • 设置u盘优先启动怎么设置
  • 顿号用键盘怎么输入
  • 重楼的功效与作用价格
  • 白兰花的养殖方法和注意事项和病虫害
  • js map foreach遍历
  • php中分页功能的实现
  • php目录结构
  • 个人税收是怎么计算的举例
  • 商业企业收到增值税
  • 光下的村庄环境描写
  • yii2超好用的日期组件和时间组件
  • 框架的弊端和作用
  • 基于Selenium的自动化测试平台设计与实现
  • 10qps是多少并发
  • win11的截屏
  • 最新的目标检测算法2020
  • php获取位置
  • 网站top排行榜
  • 个人能去税务局开劳务费发票吗
  • 培训费开票属于哪个征收明目
  • php安装了还要配置吗
  • php clone函数
  • c#连接access数据库实例
  • 收据大写后面的空格怎么填
  • 确认销售收入时不影响应收账款入账金额的是
  • 包装物押金要计入增值税吗
  • 已确认收入但尚未发出商品分录
  • 绿植租赁怎么开票
  • 网络平台服务商
  • 其他综合收益的二级科目有哪些
  • 红字更正法红字冲销法
  • 三栏式明细账适用于总分类账
  • 固定资产折旧方法不考虑净残值
  • 什么公司转让需要交税
  • 材料入库单金额写含税价吗
  • 使用二氧化碳灭火器时人应该站在什么位置
  • Solaris 10 Openssh安装和配置
  • 电脑如何修改硬盘启动顺序
  • win8.1快捷键
  • linux ifconfig命令详解
  • 重装系统要注意哪些
  • linux 卸载 mysql
  • Python中利用不同Excel表的列匹配
  • nodejs查找文件
  • Python HTTP客户端自定义Cookie实现实例
  • jquery绑定keyup
  • unity获取物体的位置
  • bootstrapping怎么做
  • python深入浅出
  • 浙江银行上班时间查询
  • 四川省职称查询平台
  • 个体办税控盘需要什么材料
  • 出口退税函调回函时间
  • 房子有注册公司可以卖吗
  • 伤残补助金要解除合同吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设