【React】归纳篇(二)JSX使用与虚拟DOM

jsx-dom:使用JSX创建DOM元素 jsx-dom 使用JSX创建DOM元素。 支持ES模块和TypeScript。 安装 npm install --save jsx-dom yarn install jsx-dom 用法 注意: jsx-dom仅是ESM。 如果您绝对需要CommonJS支持,请改用jsx-dom-cjs 。 注意:如果您使用的是 ,只需将jsxImportSource设置为jsx-dom或jsx-dom/min ,就可以省略导入。 import React from "jsx-dom" // DOM Elements. document . body . appendChild ( < div xss=removed xss=removed> Hello World < / div > ) // Functional components // `defaultP 立即下载

在这里插入图片描述
先上示例,注意其中的注释:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <div id="test1"></div>
    <div id="test2"></div>
    <script src="https://cdn.bootcss.com/react/16.4.0/umd/react.development.js"></script>
    <script src="https://cdn.bootcss.com/react-dom/16.4.0/umd/react-dom.development.js"></script>
    <script src="https://cdn.bootcss.com/babel-standalone/6.26.0/babel.min.js"></script>
    <script type="text/javascript">
        const msg = 'I like react!'
        const myId = 'test';
        //**流程不变**
        //1、创建虚拟DOM-不使用jsx的情况
        const vDom1 = React.createElement('h2',{id:myId.toLowerCase()},msg.toUpperCase());
        debugger //打断点查看
        //2、渲染虚拟DOM
        ReactDOM.render(vDom1,document.getElementById('test1'));
    </script>

    <script type="text/babel">
        //**流程不变**
        //1、创建虚拟DOM-使用jsx的情况
        const vDom2 = <h3 id={myId.toUpperCase()}>{msg.toLowerCase()}</h3> 
        //**JSX写法标签不能加单/双引号,否则就成了字符串,其最终会转换成js对象**
        //2、渲染虚拟DOM
        ReactDOM.render(vDom2,document.getElementById('test2'));
    </script>
</body>
</html>

记住流程:

  • 1、创建虚拟DOM

  • 2、渲染虚拟DOM

为何要使用虚拟DOM?

虚拟DOM优势:

  • 轻;
  • 只在渲染时发生重绘,更改时不发生重绘。

JSX——javascript XML

  • 可使用html标签;
  • 还可使用自定义标签——组件标签;
  • 注意:只要用了JSX,都加加上type="text/babel"

渲染虚拟DOM元素

  • 语法: ReactDOM.render(virtualDOM,containerDOM);

建立虚拟DOM——2种方式

//第一种(不推荐)
const vDom = React.createElement('h1',{id:myId},msg);
//第二种(推荐)
const vDom = <h1 id='myId'>{msg}</h1>

若对虚拟DOM想进一步了解,可查看另一篇文章《浅析虚拟DOM》
点击查看《浅析虚拟DOM》

练习

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <h1>展示列表</h1>
    <h2>关键:将一个数据的数组转换为一个标签的数组——map()</h2>
    <div id="test1"></div>
   
    <script src="https://cdn.bootcss.com/react/16.4.0/umd/react.development.js"></script>
    <script src="https://cdn.bootcss.com/react-dom/16.4.0/umd/react-dom.development.js"></script>
    <script src="https://cdn.bootcss.com/babel-standalone/6.26.0/babel.min.js"></script>

    <script type="text/babel">
        const arrs = ['react','vue','angular','jquery','backbone'];
        //流程不变
        //1、创建虚拟DOM
        const vDom_ul = (
            <ul>
                {
                    arrs.map((arr,index)=><li key={index}>{arr}</li>)
                }
                
            </ul>
        )
        //2、渲染虚拟DOM
        ReactDOM.render(vDom_ul,document.getElementById('test1'));
    </script>
</body>
</html>

DETRs with Collaborative Hybrid Assignments Training论文阅读与代码 在这篇论文中,作者观察到在DETR中将过少的 Query 分配为正样本,采用一对一的集合匹配,会导致对编码器输出的监督稀疏,严重损害编码器的区分特征学习,反之亦然,也会影响解码器中的注意力学习。为了缓解这个问题,作者提出了一种新颖的协同混合分配训练方案,名为Co-DETR,以从多样的标签分配方式中学习更高效、更有效的基于DETR的检测器。这种新的训练方案可以通过训练多个并行辅助 Head ,以一对多的标签分配方式(如ATSS和Faster RCNN)进行监督,轻松增强端到端检测器中编码器的学习能力。 阅读详情

相关推荐

Haystack框架实战:从零构建企业级智能问答系统

自然语言处理(NLP)技术通过让计算机理解和生成人类语言,正在深刻改变信息检索与交互方式。其核心原理在于将文本转化为机器可处理的向量表示,并通过语义相似度计算实现精准匹配。这一技术价值在于能够从海量非结构化数据中快速提取精准信息,大幅提升知识获取效率。在工程实践中,检索增强生成(RAG)架构结合了密集向量检索与大语言模型生成能力,成为构建智能问答、知识库助手等应用的主流方案。该架构通过将用户查询与文档库进行语义匹配,并为大语言模型提供精准上下文,有效提升了回答的准确性与可追溯性。本文以Haystack这一生

weixin_42521032的博客 577

Vue3 第三十二篇:JSX中直接操作dom元素

获取元素的方式分为两种1.通过选择器直接获取dom元素。 注意:这里无法使用class选择器。因为jsx在编译的过程中,会为class名称加上哈希后缀,也就是说,无法直接通过class选择器来获取元素。2.通过ref标记来获取元素。定义变量 将变量通过ref绑定到dom元素上 这样就可以操作dom元素了...

Good Luck 1996

Agent Skills:AI智能体规模化落地的基础设施

摘要:AgentSkills体系已成为AI智能体落地的核心基础设施,解决了能力扩展和行业知识沉淀两大核心难题。该开放标准通过语义优先、渐进式披露等设计原则,实现了工具调用的标准化和可控化,同时支持轻量化知识沉淀。Skill作为最小能力单元,将传统软件功能、行业知识等封装为可被智能体调用的标准化模块,推动了软件产业从"工具时代"向"智能体时代"的范式变革。目前该体系已被主流Agent工具广泛兼容,形成完整生态,未来将持续演进,进一步降低落地门槛,推动AI原生转型。

技术引领业务创新 1158

深入理解虚拟DOM:原理、优势与实践

虚拟DOM(Virtual DOM)是一个编程概念,它是对真实DOM(Document Object Model)内存中的抽象表示。虚拟DOM本身并不是一个真实的DOM节点,而是一个轻量级的JavaScript对象,它模拟了真实DOM树的结构和属性。开发者通过操作虚拟DOM,可以间接地更新真实DOM,而不需要直接进行频繁的DOM操作,从而提高Web应用的性能。自定义虚拟DOM实现是一个有趣但具有挑战性的任务。

球球不吃虾WHR2349博客 2278

利用OrthoFinder做泛基因家族聚类分析

这条命令会将 Arabidopsis_thaliana.TAIR10.59_longest_trans.pep.fa 文件中的所有序列ID,去掉ID中的空格后面的部分,只保留 > 后第一个空格之前的基因ID,并将结果保存在 An1.fasta 文件中。muscle 是一种常用的多序列比对工具,用于基因组或蛋白质序列的比对。基因家族(Gene family),是来源于同一个祖先,由一个基因通过基因重复而产生两个或更多的拷贝而构成的一组基因,它们在结构和功能上具有明显的相似性,编码相似的蛋白质产物。

qq_64400864的博客 2746

NXP ChessDE的安装和激活

如果客户申请的是试用版,那么一份为期 30 天的 License 将会发送申请人的账号或邮箱中,客户使用该文件进行安装即可。② 将“VENDOR snpslmd /path/to/snpslmd”中的“/path/to/snpslmd”替换成 snpslmd.exe 实际存放路径(位于 SCL 安装目录下的 win32\bin 文件夹中,默认安装的情况下就是“VENDOR snpslmd C:\Synopsys\SCL\<version>\win32\bin\snpslmd.exe”)。

weixin_47351160的博客 2042

JSX 和虚拟 DOM

React JSX React 使用 JSX 来替代常规的 JavaScript。 JSX 是一个看起来很像 XML 的 JavaScript 语法扩展。 我们不需要一定使用 JSX,但它有以下优点: JSX 执行更快,因为它在编译为 JavaScript 代码后进行了优化。 它是类型安全的,在编译过程中就能发现错误。 使用JSX编写模板更加简单快速。 ...

fmk1023的博客 406

golang 线上事故

golang 线上事故 最近公司要做大促的一些活动。并且单量,qps持续上涨。之前使用的是django python 语言做的一个服务端。目前已经部署的国家里面最多的国家会有300+个实例。大促期间还可能会增加一个实例数。这么多的实例部署,回滚的时间都会特变长,除了问题也不好定位。并且如此多的一个机器,连接数* 实例数也会导致DB等其他服务扛不住这么大的并发。所以决定上go服务解决性能问题。 ...

lcf枫的博客 1537

学习React(7) - JSX

在上一篇的学习React(6) - Class 组件(Component) 中,有写到用JSX格式,和没有用到JSX格式,那么现在就来总结一下JSX的不同之处: class 变成 className for 变成 htmlFor camelCase 法则来命名,比如说: onclick 变成 onClick tabindex 变成 tabIndex ...

CHNMSCS 195

Replay音频转换时samplerate缺失的解决方案指南

Replay音频转换时提示"No module named 'samplerate' This error is lazily reported, having originally occured in File"的解决方案

weixin_47445543的博客 2125

Windows环境下Ollama的本地部署方案

本文主要介绍了Windows环境下Ollama的本地部署方案,希望对使用大语言模型的同学们有所帮助。 文章目录 1. 前言 2. Windows环境安装 3. API调用示例代码

herosunly的博客 11万+

【React】JSX底层处理机制

JSX底层处理机制

编码世界 1478

基于Lumerical的1550 nm InGaAs/InP与InGaAs/InAlAs APD设计与功率饱和度优化

摘要 本研究利用Ansys Lumerical软件对1550 nm激光雷达应用的InGaAs/InP和InGaAs/InAlAs雪崩光电二极管(APD)进行仿真设计与优化。通过FDTD光学仿真获取光吸收分布,结合CHARGE模块的电学仿真分析暗电流、光电流及雪崩增益特性。重点研究了两种材料体系的性能差异,并针对近距离强反射导致的功率饱和问题提出结构优化方案。仿真结果表明,InGaAs/InAlAs APD具有更优的过量噪声特性,而优化的电荷层设计可显著提升器件的功率饱和阈值。研究提供了完整的仿真流程与代码实

huanghm88的专栏 95

【React】知识点归纳:React JSX、虚拟DOM、模块与组件和模块化与组件化的理解

JSX 1)全称: JavaScript XML 2)react定义的一种类似于XML的JS扩展语法: XML+JS 3)作用: 用来创建react虚拟DOM(元素)对象 var ele = &amp;amp;amp;lt;h1&amp;amp;amp;gt;Hello JSX!&amp;amp;amp;lt;/h1&amp;amp;amp;gt; 注意1: 它不是字符串, 也不是HTML/XML标签 注意2: 它最终产生的就是一个JS对象 4)标签名任意: HTML标签

Dream_Lee的博客 546

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

React基础语法归纳

React 使用 JSX 来替代常规的 JavaScript。 JSX 是一个看起来很像 XML 的 JavaScript 语法扩展。 我们不需要一定使用 JSX,但它有以下优点: JSX 执行更快,因为它在编译为 JavaScript 代码后进行了优化。 它是类型安全的,在编译过程中就能发现错误。 使用 JSX 编写模板更加简单快速。 ...

牛老大啊的博客 335

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

React.js技术归纳

React.js 是 Facebook 开发的一款用于构建用户界面的 JavaScript 库,其设计目标是提高大规模应用的性能和可维护性。

LIYANG7911的博客 367

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【React】归纳篇(一)基本使用 React开发环境搭建

常用网站 https://reactjs.org/docs/getting-started.html https://react.docschina.org/ https://www.bootcdn.cn/ 常用三个文件 //react 核心库 [必要] react.development.js &amp;lt;script src=&quot;https://cdn.bootcss.com/re...

前端进阶之路 | 中大厂、外企、国企内推 | 面试培训 | 简历修改 1428

Vue与React的Diff算法

虚拟DOM是一种用于在前端开发中模拟真实DOM的技术。它是一种抽象的数据结构(简单来说就是一个Javascript对象),用于描述HTML或XML文档的结构和内容。通过将页面的状态和结构保存在内存中,而不是直接操作真实的DOM,虚拟DOM能够减少不必要的DOM操作,从而提高页面性能。

警警的博客 2670

react入门系列之react特点归纳

### 声明式开发 - 命令式开发:原生js和jq写代码的时候,大部分代码都是在操作dom,这种开发模式就是命令式开发。 - 声明式开发:react是面向数据编程,不需要直接去控制dom,你只要把数据操作好,react自己回去帮你操作dom,可以节省很多操作dom的代码。这就是声明式开发。 ### 可以和其他框架并存 - react所控制的dom就是id为root的dom,页面上...

anchi2021的博客 214

react(part1/2)

{/*2.在标签中引入createRef对象*/}// 3.获取标签中输入的值</button>

qq_41141022的博客 534

React有什么特点?

React在内存中维护一个快速的轻量级JavaScript对象表示DOM,在每次状态更新时,React会比较新旧虚拟DOM的差异,并只将必要的更新应用到真实的DOM上,这大大减少了DOM操作的数量,提高了应用的性能。组件之间可以嵌套使用,形成完整的UI结构。综上所述,React以其声明式、组件化、高效性、灵活性、丰富的生态系统以及跨平台等特点,在前端开发中占据了重要的地位,并受到越来越多开发者的青睐。通过构建管理自身状态的封装组件,并对其组合以构成复杂的UI,React提高了代码的可重用性和可维护性。

2301_81449444的博客 664

react有什么特点

综上所述,React以其独特的设计思想、高效的性能、灵活的扩展性以及丰富的生态系统等特点,在前端开发中占据了重要的地位。

qq_60504665的博客 757

对应的前端知识总结归纳(常被问到的知识六:React等框架版块)

大家好,我是梅巴哥er。本篇介绍React等框架版块的知识总结。 React版块 常用学习网站: React官网 ant-d官网 知识归纳: 讲讲vue的生命周期(或者react生命周期) redux用处 redux里常用方法 前端流行框架的考查。说说vue react angularjs jquery的区别 介绍一下react(或vue等,以下同) React单项数据流 react生命周期函数和react组件的生命周期 react和Vue的原理,区别,亮点,作用 reactJs的组件交流(父子组件之

tuzi007a的博客 252

React学习路线

React是一个流行的JavaScript库,用于构建用户界面。其核心概念包括JSX语法、组件化开发(函数组件和类组件)、Props和State管理、事件处理、条件/列表渲染等。React通过虚拟DOM提升性能,并提供Hooks(如useState、useEffect)实现函数组件的状态管理。进阶内容涵盖高阶组件、Redux状态管理、性能优化、路由(React Router)等。高级主题包括服务器端渲染、错误边界、TypeScript集成等。React生态丰富,支持多种工具链(如Create React A

警警的博客 1403

一篇包含了react所有基本点的文章

去年,我写了一本关于学习React.js的小书,原来是大约100页。 今年我要挑战自己,把它归纳为一篇文章。 本文不会涵盖什么是React,或者为什么要学习它。 相反,这是面向已经熟悉JavaScript并熟悉DOM API基础知识的人,对React.js的基础知识的介绍。 以下所有代码示例均标示为参考。 它们纯粹是为了提供概念而写的例子。 他们大多数可以写得更好一些。 1:组件是Rea...

dianqi0560的博客 94
上一篇: 【React】归纳篇(一)基本使用 React开发环境搭建
下一篇: 【一步步一起学DApp开发】(一)什么是去中心化应用
蟹蟹蟹风流
蟹蟹蟹风流 优质创作者: 编程框架技术领域 优质创作者: 编程框架技术领域 领域专家: 前端开发技术领域 领域专家: 前端开发技术领域
博客等级 码龄11年 3万+粉丝 396原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蟹蟹蟹风流

期望和你分享一杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值