React学习day01--虚拟DOM的两种创建方式

一、使用js的方式创建虚拟DOM

使用js这种创建虚拟DOM的方式相对jsx来说是繁琐的,如果标签是深层次嵌套,那么书写非常耗时且麻烦。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>hello_react</title>
</head><body><!-- 准备好一个容器 --><div id="test"></div><!-- 引入react核心库 --><script type="text/javascript" src="/react-development.js"></script><!-- 引入react-dom,用于支持react操作DOM --><script type="text/javascript" src="/react-dom-development.js"></script><!-- 引入babel,用于将jsx转为js --><script type="text/javascript" src="/babel.min.js"></script><script type="text/javascript">// 1.创建虚拟DOMconst vDOM = React.createElement('h1',{id: 'title'},React.createElement('span'{},'hello,world'))// 2.渲染虚拟DOM到页面ReactDOM.render(vDOM,document.getElementById('test'))</script>
</body></html>

二、使用jsx的方式创建虚拟DOM

使用jsx的方式创建虚拟DOM,就像写HTML标签一样方便且有层次感,可以说jsx是js这种方式写法的语法糖,react内部编译也是通过js的方式创建,然后将虚拟DOM渲染到页面;不过react帮我们做了复杂的转换,我们无需关心。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>hello_react</title>
</head><body><!-- 准备好一个容器 --><div id="test"></div><!-- 引入react核心库 --><script type="text/javascript" src="/react-development.js"></script><!-- 引入react-dom,用于支持react操作DOM --><script type="text/javascript" src="/react-dom-development.js"></script><!-- 引入babel,用于将jsx转为js --><script type="text/javascript" src="/babel.min.js"></script><script type="text/babel">// 1.创建虚拟DOMconst vDOM = (<h1 id="title"><span>Hello,React</span></h1>)// 2.渲染虚拟DOM到页面ReactDOM.render(vDOM,document.getElementById('test'))</script>
</body></html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/3790.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

32个centos常见的命令使用

CentOS 是一个基于 Red Hat Enterprise Linux (RHEL) 的免费企业级操作系统。以下是一些基本的 CentOS 命令&#xff0c;用于日常管理和操作&#xff1a; 这些命令是Linux系统中常用的命令行工具&#xff0c;用于执行各种系统管理任务。下面是对每个命令的详细介绍&#xff0c…

关于豆瓣电影数据抓取以及可视化

首先我们可以先了解以下网络爬虫的定义&#xff1a; 爬虫是一种按照一定的规则&#xff0c;自动地抓取万维网信息的程序或者脚本。它可以在互联网上自动抓取网页内容&#xff0c;将这些信息存储起来。爬虫可以抓取网站的所有网页&#xff0c;从而获取对于我们有价值的信…

企业战略落地:单项目无法解决的,交给项目组合管理

在快速变化的市场环境中&#xff0c;企业对项目管理的需求日益增加&#xff0c;但传统的单项目管理和项目集管理难以满足企业对项目管理的更高要求。随后&#xff0c;项目组合管理方法论逐渐被越来越多的企业运用&#xff0c;并用于指导企业在复杂多变的经营环境下&#xff0c;…

工厂方法模式(模拟发奖多种商品)

目录 定义 模拟发奖多种商品 优惠券 实物商品 第三⽅爱奇艺兑换卡 代码实现 定义发奖接⼝ 实现奖品发放接⼝ 优惠券 实物商品 第三⽅兑换卡 创建商店⼯⼚ 测试验证 定义 在⽗类中提供⼀个创建对象的⽅法&#xff0c; 允许⼦类决定实例化对象的类型。 模拟发奖多…

JVM(Jvm如何管理空间?对象如何存储、管理?)

Jvm如何管理空间&#xff08;Java运行时数据区域与分配空间的方式&#xff09; ⭐运行时数据区域 程序计数器 程序计数器&#xff08;PC&#xff09;&#xff0c;是一块较小的内存空。它可以看作是当前线程所执行的字节码的行号指示器。Java虚拟机的多线程是通过时间片轮转调…

go进行大文件的分块并发处理

以下是我在文心一言获得的答案 我的疑问是&#xff1a;文件的每一行是一条完整的请求数据&#xff0c;文件分块会不会破坏一行的数据呢&#xff1f; 文件的每一行是一条完整的请求数据&#xff0c;当我们将文件按照行分块时&#xff0c;是不会破坏单行数据的完整性的。这是因为…

《HCIP-openEuler实验指导手册》1.5 Apache持久化连接配置

一、知识点 二、配置方法 在/etc/httpd/conf.d目录中创建持久连接相关配置文件keepalived.conf&#xff0c;并添加如下配置信息&#xff1a; KeepAlive On KeepAliveTimeout 20 MaxKeepAliveRequests 500

目标检测——大规模商品数据集

引言 亲爱的读者们&#xff0c;您是否在寻找某个特定的数据集&#xff0c;用于研究或项目实践&#xff1f;欢迎您在评论区留言&#xff0c;或者通过公众号私信告诉我&#xff0c;您想要的数据集的类型主题。小编会竭尽全力为您寻找&#xff0c;并在找到后第一时间与您分享。 …

【STM32F407+CUBEMX+FreeRTOS+lwIP之TCP记录】

STM32F407CUBEMXFreeRTOSlwIP之TCP记录 注意TCP client(socket)示例 TCP_server(socket)效果 注意 如果连接失败&#xff0c;建议关一下代理软件。 配置方面可以参考一下上一篇UDP的文章 STM32F407CUBEMXFreeRTOSlwIP之UDP记录 TCP client(socket) #define LWIP_DEMO_PORT 8…

OpenSceneGraph

文章目录 关于 OpenSceneGraphScreenshots - OpenMW 关于 OpenSceneGraph 官网&#xff1a;https://openscenegraph.github.io/openscenegraph.io/github : https://github.com/openscenegraph/OpenSceneGraphClasses : https://podsvirov.github.io/osg/reference/opensceneg…

小清新DP题(多做多想)

牛客小白月赛90 F problem solution R(n), R(m); int L 0;F(i, 1, m) R(d[i].st), R(d[i].en), c[ L] d[i].st, c[ L] d[i].en;c[ L] n;sort(c 1, c L 1); int cnt 0;F(i, 1, L) if (c[i] ! c[i - 1]) {g[c[i]] cnt;D[cnt] c[i];}sort(d 1, d m 1);f[0][0][0] …

ElasticSearch 安装(docker)

下载安装包 阿里云链接&#xff1a; elasticSearch.exe https://www.alipan.com/s/3A356NnmWaJ 提取码: 93da 点击链接保存&#xff0c;或者复制本段内容&#xff0c;打开「阿里云盘」APP &#xff0c;无需下载极速在线查看&#xff0c;视频原画倍速播放。 安装步骤 1、首先…

Vite与Vue 3快速上手指南

Vite是一个由Evan You&#xff08;Vue的创始人&#xff09;开发的快速开发工具&#xff0c;用于构建现代化的Web应用程序。它具有快速的冷启动时间和实时模块热重载功能&#xff0c;使得开发者能够更快地开发和调试应用程序。 Vue 3是Vue.js的最新版本&#xff0c;它引入了许多…

Centos 7 安装 RocketMQ 5.14(保姆级)

1.yum 安装 upunzip yum install -y unzip 2.创建文件夹存放RocketMQ&#xff0c; 安装之前需要安装JDK mkdir -p /opt/tools/rocketmq 3.下载 RocketMQ 上传到 /opt/tools/rocketmq RocketMQ 官网下载地址 4.切换目录、解压 cd /opt/tools/rocketmq unzip rocketmq-a…

冯唐成事心法笔记 —— 知人

系列文章目录 冯唐成事心法笔记 —— 知己 冯唐成事心法笔记 —— 知人 冯唐成事心法笔记 —— 知世 冯唐成事心法笔记 —— 知智慧 文章目录 系列文章目录PART 2 知人 人人都该懂战略人人都该懂战略第一&#xff0c;什么是战略第二&#xff0c;为什么要做战略第三&#xff0…

GPB | RegVar:基于深度神经网络的非编码区突变功能预测新方法

Genomics, Proteomics & Bioinformatics &#xff08;GPB&#xff09;发表了由军事医学研究院辐射医学研究所张成岗研究员、周钢桥研究员和卢一鸣副研究员团队完成的题为“RegVar: Tissue-specific Prioritization of Noncoding Regulatory Variants”的方法文章。我们的“…

继续学习排序

因为ss最近在备赛&#xff0c;很久没写文章了&#xff0c;今天速更一篇 非比较排序中的计数排序 这个排序适用于数组范围比较集中的&#xff0c;因为我们把数组里面的数作为新数组的下标&#xff0c;这样我们就可以记录这个数出现的次数&#xff0c;大家看代码把&#xff0c;…

Docker torchserve 部署模型流程——以WSL部署YOLO-FaceV2为例

Docker torchserve 部署模型流程——以WSL部署YOLO-FaceV2为例 Docker torchserve 模型部署 一、配置WSL安装docker二、配置docker环境1&#xff0c;拉取官方镜像2&#xff0c;启动docker容器&#xff0c;将本地路径映射到docker3&#xff0c;查看docker镜像4&#xff0c;进入…

Redis入门到实战教程(基础篇)笔记

教学来源&#xff1a; Redis课程介绍导学_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1cr4y1671t?p1一、Redis 入门 1.认识NoSQL 2.Redis在虚拟机中的安装和开机自启 Redis在虚拟机中安装和配置开机自启-CSDN博客https://blog.csdn.net/qq_69183322/article/deta…

项目管理中常用的三个工具:甘特图、看板、燃尽图

在日常项目管理的实践中&#xff0c;为了更有效地追踪项目进度、优化资源配置和提高团队协作效率&#xff0c;管理者常常会借助一些工具来辅助工作。这些工具的本质在于将抽象复杂的项目管理任务具象化、简单化&#xff0c;以更直观、方便的方式呈现出来。 以下介绍项目管理中…