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>

运行结果

相关推荐
liangshanbo12151 小时前
面试题:前端工程化中 Tree Shaking的原理是什么?
前端·treeshaking
500841 小时前
React Native for OpenHarmony 实战:三方库 react-native-url-polyfill 的鸿蒙化适配指南
javascript·react native·react.js·性能优化·electron·harmonyos
补码缩写2 小时前
视频跳转触发了seeked,画面就到位了吗
前端
库拉镜像AI牛牛2 小时前
漫剧工作室量产方案:依托知漫剧 AI 短剧降本增效
大数据·服务器·前端·人工智能·语音识别
不可能片场2 小时前
内容运营自动化 用相似度拦住撞车选题
前端·electron
静默回滚2 小时前
视频进度条跳回去,先别改事件监听
前端
米多科技2 小时前
让 AI 走进我的 3D 世界:一个 MCP server 的完整实现
javascript
Lank_M2 小时前
MP4和WebM导出后为何起播与拖动不同
前端
用户5508492902562 小时前
前端本地存储怎么选:Cookie、localStorage、sessionStorage、IndexedDB 的取舍
前端
用户5508492902562 小时前
Git 日常命令与分支协作流程:从提交到合并的实战梳理
前端