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

  • 税收优惠属于政策吗
  • 支付境外劳务费需要缴纳哪些税费
  • 增值税的计税金额
  • 已交税金是什么类
  • 土地增值税应纳税额如何计算
  • 增值税应纳税额的计算
  • 汇票签收后可以撤回吗
  • 企业所得税不预缴年终汇算可以吗
  • 展位费怎么入账
  • 季度应收账款周转天数是按多少天除
  • 教育费附加免税政策
  • 小规模纳税人季报是哪几个月
  • 服务业发票的开具范围包括什么
  • 安置残疾人就业税收优惠政策
  • 公司注销应付款太多
  • 失业养老保险如何办理
  • 哪些发票不可进行进项税抵扣?
  • 城建税当月缴纳要计提吗
  • 建筑工程伙食费包括什么
  • 本月工资下月发是什么意思
  • 发票签收单怎么填
  • 免税发票可以入账吗
  • 工商年度报表怎么打印出来
  • 承兑汇票章不清晰 情况说明
  • 退关税怎么入账
  • 城建附加减半征收文件
  • 预收账款贷方负数表示什么
  • 王者荣耀电脑版叫啥名字
  • 建安企业享受的税收优惠2020年
  • 以前年度损益调整会计分录
  • php header refresh
  • php制作一个表单
  • 任务栏变宽了怎么调回来win11
  • mac清理垃圾怎么清理
  • macOS Big Sur 11.1 开发者预览版 Beta 2推送更新
  • 电脑屏幕字体模糊怎么办
  • PHP:mcrypt_cbc()的用法_Mcrypt函数
  • 用友结算成本处理的作用
  • csdn创作
  • 向境外支付技术提成费需要提交什么材料
  • 人脸识别测颜值,al
  • php 字符串处理函数
  • 定额发票累计领用金额怎么填
  • 企业销售商品应该向购货单位收取的货款
  • 大前端技术
  • typescript tsconfig
  • 残疾人就业保障金怎么申报
  • mysql默认存储引擎的命令
  • mongodb用法
  • SQL Server FileStream详解
  • 沙子产量表格
  • SQLite Delete详解及实例代码
  • 餐厅吃饭不小心把餐具打破需要赔吗?
  • 无偿调出固定资产应计入什么
  • 个人出租不动产月租金不超10万免税
  • 预收账款年底是不是不能有余额
  • 财政补助资金是什么意思
  • 出口货物索赔如何确认收入
  • 应交增值税一转出未交增值税
  • 小规模纳税人发票可以抵扣吗
  • sqlserver 断开数据库连接
  • ubuntu中运行c程序
  • debian修改中文
  • win8系统怎样关机
  • win8都有哪些版本
  • 如何优化资本结构
  • 编辑器组件
  • pcl读取ply文件
  • 如何正确使用农药芸苔素
  • perl tr函数
  • relative absolute无法冲破的等级问题解决第1/3页
  • 可视化gradcam
  • 夯实基础怎么读
  • js判断用户输入密码
  • python修改图片背景
  • python语言例子
  • 增值税普通发票可以抵扣吗
  • 地税局有实权吗
  • 农副产品免税最低多少
  • 当月专票作废流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设