首页 > 其他分享 >React(四):虚拟DOM创建的两种方式

React(四):虚拟DOM创建的两种方式

时间:2023-07-30 13:56:10浏览次数:44  
标签:DOM 创建 React 虚拟 jsx vDom

1.使用js创建虚拟DOM(不推荐使用)

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>js创建虚拟DOM</title>
    <script src="https://unpkg.com/react@18/umd/react.development.js"></script>
    <script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>

</head>

<body>
    <!-- 准备一个容器 -->
    <div id="test"></div>
</body>

<script type="text/javascript">

// 使用js创建虚拟DOM
const vDom = React.createElement('h1',{title:'hello'},React.createElement('span', {}, 'Hello,React'))
//react渲染
ReactDOM.render(vDom, document.getElementById("test"))
</script>

</html>

2.使用jsx创建虚拟DOM

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>jsx创建虚拟DOM</title>
    <script src="https://unpkg.com/react@18/umd/react.development.js"></script>
    <script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>

    <!-- Don't use this in production: -->
    <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
</head>

<body>
    <!-- 准备一个容器 -->
    <div id="test"></div>
</body>

<script type="text/babel">

    // 使用jsx创建虚拟DOM
    // babel会帮我们将jsx转化为js形式的DOM创建,本质上没有变化,实际上就是jsx简化了我们的编写
    const vDom = (
        <h1>
            <span>Hello,React</span>
        </h1>
    )
    //react渲染
    ReactDOM.render(vDom, document.getElementById("test"))
</script>

</html>

3.虚拟DOM与真实DOM

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>jsx创建虚拟DOM</title>
    <script src="https://unpkg.com/react@18/umd/react.development.js"></script>
    <script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>

    <!-- Don't use this in production: -->
    <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
</head>

<body>
    <!-- 准备一个容器 -->
    <div id="test"></div>

    <!-- 真实DOM -->
    <h1 id="trueDom">
        <span>Hello,React</span>
    </h1>
</body>

<script type="text/babel">

    // 使用jsx创建虚拟DOM
    const vDom = (
        <h1>
            <span>Hello,React</span>
        </h1>
    )
    //react渲染
    ReactDOM.render(vDom, document.getElementById("test"))

    // 拿到真实DOM
    const tDom = document.getElementById("trueDom")
    debugger;
    console.log("虚拟DOM",vDom)
    console.log("真实DOM",tDom)

    // 关于虚拟DOM
    // 1.虚拟DOM本质上是一个Object对象
    // 2.虚拟DOM相较于真实DOM拥有的属性较少,是React内部使用的
    // 3.虚拟DOM会被React转化为真实的DOM展示在页面上
</script>

</html>

 

标签:DOM,创建,React,虚拟,jsx,vDom
From: https://www.cnblogs.com/jmsstudy/p/17591356.html

相关文章

  • React(五):jsx语法
    1.jsx语法<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>jsx语法</title><scriptsrc="https://unpkg.com/react@18/umd/react.development.js"></script><script......
  • React(六):组件的两种创建方式
    1.函数式组件<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>函数式组件</title><scriptsrc="https://unpkg.com/react@18/umd/react.development.js"></script><script......
  • React 正在经历 Angular.js 的时刻吗?
    本文作者FrançoisZaninotto是资深React开发者,在看到React官方开始推广服务器组件后,他对此表示担忧,因为这会让现有的很多写法都失效。文章讨论了React和Next.js团队最近推广的服务器组件,这种新的构建Web应用程序的方式与大多数现有的React应用程序不符。因此,作者提......
  • 【Zookeeper】基于3台linux虚拟机搭建zookeeper集群
    环境和版本说明环境说明:操作系统:Win11202322H2CPU:13代i6内存:64G虚拟机:VMTool17CenterOs版本:7.9镜像:CentOS-7-x86_64-Minimal-2009_2.isoZookeeper版本:3.5.101.进入官方下载CenterOs7.9官网地址:www.centos.org/download/这里还是建议有条件的用用魔法啥的。根据个人环境选择......
  • 什么是编程领域的 DSL - Domain Specific Language
    在编程领域中,DomainSpecificLanguage(DSL)是一种特定于特定问题领域的计算机语言,设计用于解决该领域的特定类型的问题。DSL的设计目标通常包括提高生产力,使非程序员可以使用,以及提供特定类型的语言构造。DSL与通用编程语言(GPL)相对,GPL如Python、Java等,可以用于解决各种类型的问题。......
  • React18学习笔记
    目录使用Create-React-App创建项目使用Vite创建项目JSX语法基础标签属性事件插入JS变量和表达式条件判断循环实践:列表页组件Props组件通讯HooksuseState基本使用特点使用useState实现问卷的增删改使用immer解决不可变数据问题useEffectuseRefuseMemo......
  • 元宇宙虚拟银行网点
    第一章、问题描述银行业物理网点便捷了人民使用金融服务。但多数情况下,人们有余时间、空间、事务冲突,规定时间内无法或者主观意愿不太想前往网点办理业务,造成服务的不便接性以及用户体验的下降。随着信息科技的快速发展,元宇宙将在一定程度上解决这一问题,或者说从虚拟空间的角度......
  • 关于云平台虚拟机核心组件 libvirt 热迁移流程及关键参数介绍 | 龙蜥技术
    编者按:libvirt是用于管理虚拟机的开源项目,是各大基于OpenStack二次开发的云平台管理底层qemu-kvm虚拟机的核心组件,而热迁移作为虚拟机管理中较为常用的功能,其在稳定性和效率关乎云平台的整体使用体验。今天,浪潮数据云计算高级研发工程师李世东带大家了解虚拟机热迁移在libv......
  • 实时云渲染技术_如何助力VR虚拟现实走向成熟?
    近年来,虚拟现实(VirtualReality,VR)技术在市场上的应用越来越广泛,虚拟现实已成为一个热门的科技话题。相关数据显示,2019年至2021年,我国虚拟现实市场规模不断扩大,从2019年的282.8亿元增长至2021年的583.9亿元,市场规模实现翻番。预计未来3年将保持快速增长,到2023年将突破1000亿元大......
  • 如何复制文件到 Hyper-V 虚拟机上
    想要实现复制文件到虚拟机上,主要是需要在Hyper-V主机上打开增强会话模式如果Hyper-V主机运行的是Windows10或Windows8.1,则默认情况下,增强会话模式处于打开状态,因此你可以跳过此步骤并转到下一部分。但是,如果主机运行的是WindowsServer2016或WindowsServer2012......