4.React 虚拟DOM与真实DOM

1.虚拟DOM:

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>3_虚拟DOM与真实DOM</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>
   <!-- 引入babel,用于将jsx转为js -->
   <script type="text/javascript" src="../js/babel.min.js"></script>

   <script type="text/babel" > /* 此处一定要写babel */
      //1.创建虚拟DOM
      const VDOM = (  /* 此处一定不要写引号,因为不是字符串 */
         <h1 id="title">
            <span>Hello,React</span>
         </h1>
      )
      //2.渲染虚拟DOM到页面
      ReactDOM.render(VDOM,document.getElementById('test'))

      console.log('虚拟DOM',VDOM);//输出虚拟DOM
      console.log(typeof VDOM);//输出虚拟DOM的类型
      console.log(VDOM instanceof Object);//虚拟DOM是否是Object
      debugger;
   </script>
</body>
</html>

  debugger查看虚拟DOM的属性:
在这里插入图片描述
  输出:
在这里插入图片描述

2.真实DOM:

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>3_虚拟DOM与真实DOM</title>
</head>
<body>
   <!-- 准备好一个“容器” -->
   <div id="test"></div>
   <div id="demo"></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>
   <!-- 引入babel,用于将jsx转为js -->
   <script type="text/javascript" src="../js/babel.min.js"></script>

   <script type="text/babel" > /* 此处一定要写babel */
      //1.创建虚拟DOM
      const VDOM = (  /* 此处一定不要写引号,因为不是字符串 */
         <h1 id="title">
            <span>Hello,React</span>
         </h1>
      )
      //2.渲染虚拟DOM到页面
      ReactDOM.render(VDOM,document.getElementById('test'))

      const TDOM = document.getElementById('demo')
      console.log('虚拟DOM',VDOM);
      console.log('真实DOM',TDOM);
      debugger;
      // console.log(typeof VDOM);
      // console.log(VDOM instanceof Object);
   </script>
</body>
</html>

  debugger查看真实DOM的属性:
在这里插入图片描述
  输出:
在这里插入图片描述

总结:关于虚拟DOM:
1.本质是Object类型的对象(一般对象)
2.虚拟DOM比较“轻”,真实DOM比较“重”,因为虚拟DOM是React内部在用,无需真实DOM上那么多的属性(DOM的轻重指的是属性的多少,看两个图就明白了)。
3.虚拟DOM最终会被React转化为真实DOM,呈现在页面上。

React中的虚拟DOM真实DOM是用于构建用户界面的两个不同的概念。虚拟DOMReact中的一种技术,它是通过在内存中创建一个轻量级的JavaScript对象来表示DOM结构的副本。这个副本被称为虚拟DOM树。React使用虚拟DOM来表示用户界面的状态,并根据需要对其进行更新。 真实DOM则是浏览器中实际存在的DOM树,它是由HTML文档解析而来,并且直接与用户交互。当使用React创建虚拟DOM后,React会比较虚拟DOM真实DOM之间的差异,并且仅更新真实DOM中需要改变的部分,从而提高性能和效率。 虚拟DOM的主要优势在于它可以在内存中进行快速的操作和计算,而不会直接影响到真实DOM。这使得React可以通过一系列优化算法来批量更新DOM,从而减少了对浏览器的重绘和重排,提高了性能。 总结来说,React虚拟DOM是通过在内存中创建一个轻量级的JavaScript对象来表示DOM结构的副本,而真实DOM是浏览器中实际存在的DOM树。React使用虚拟DOM来管理用户界面的状态,并将其转化为真实DOM更新到浏览器中。这种机制提高了React应用的性能和效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [[react] 什么是虚拟dom虚拟dom比操作原生dom要快吗?虚拟dom是如何转变成真实dom并渲染到页面的?](https://blog.csdn.net/echolunzi/article/details/125586796)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值