003-004 虚拟DOM的两种创建方式、虚拟DOM与真实DOM

虚拟DOM的两种创建方式

  1. 纯js方式(一般不用)
  2. jsx方式:
html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>hello_react</title>
</head>
<body>
<!-- 准备好一个"容器" -->
<div id="test"></div>

<!-- 引入react核心库 -->
<script type="text/javascript" src="../js/react.development.js"></script>
<!-- 引入react-dom,用于支持react操作DOM -->
<script type="text/javascript" src="../js/react-dom.development.js"></script>

<script type="text/javascript" > /* 此处一定要写babel */
  //1.创建虚拟DOM
  //React.createElement(标签名称,标签属性,标签内容)
  const VDOM =React.createElement('h1',{id:'title'},React.createElement('span',{},'Hello React'))
  //2.渲染虚拟DOM到页面
    ReactDOM.render(VDOM,document.getElementById('test'))
</script>
</body>
</html>

运行结果

虚拟DOM与真实DOM

关于虚拟DOM:

本质是Object类型的对象(一般对象)。

虚拟DOM比较"轻",真实DOM比较"重",因为虚拟DOM是React内部在用,无需真实DOM上那么多的属性。

虚拟DOM最终会被React转化为真实DOM,呈现在页面上。

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>hello_react</title>
</head>
<body>
<!-- 准备好一个"容器" -->
<div id="test"></div>

<!-- 引入react核心库 -->
<script type="text/javascript" src="../js/react.development.js"></script>
<!-- 引入react-dom,用于支持react操作DOM -->
<script type="text/javascript" src="../js/react-dom.development.js"></script>
<!-- 引入bable,用将jsx转为js -->
<script type="text/javascript" src="../js/babel.min.js"></script>

<script type="text/babel" > /* 此处一定要写babel */
  //1.创建虚拟DOM
  //React.createElement(标签名称,标签属性,标签内容)
  const VDOM =( <h1 id="title"><span>Hello,React</span></h1>
  )
  //2.渲染虚拟DOM到页面
    ReactDOM.render(VDOM,document.getElementById('test'))
    console.log('虚拟DOM',VDOM);
    console.log(typeof VDOM);
    console.log(VDOM instanceof Object);
</script>
</body>
</html>

运行结果

相关推荐
Chengbei114 分钟前
轻量化 Web 安全日志分析神器 星川智盾日志威胁检测、地理溯源、MITRE ATT&CK 映射,支持 Windows/macOS/Linux
前端·人工智能·安全·web安全·macos·系统安全·安全架构
风流 少年6 分钟前
Python Web框架:FastAPI
前端·python·fastapi
GISer_Jing14 分钟前
AI时代面试新常态——从“会用工具”到“深挖原理”的跨越
前端·人工智能·ai编程
IT_陈寒24 分钟前
React的useEffect把我坑惨了,这些闭包陷阱真要命
前端·人工智能·后端
前端之虎陈随易36 分钟前
有生之年系列,Nodejs进程管理pm2 v7.0发布
前端·typescript·npm·node.js
ayqy贾杰43 分钟前
Cursor SDK发布!开发者可直接搬走其内核
前端·vue.js·面试
changshuaihua0011 小时前
扣子开发指南
javascript·人工智能
椰猫子1 小时前
SpringMVC(SpringMVC简介、请求与响应(请求映射路径、请求参数、日期类型参数传递、响应json数据))
java·前端·数据库
love530love1 小时前
如何在 Google Chrome 中强制开启 Gemini AI 侧边栏(完整图文教程)
前端·人工智能·chrome·windows
光影少年1 小时前
对typescript开发框架的理解?
前端·javascript·typescript