【React学习】—虚拟DOM两种创建方式(二)

简介: 【React学习】—虚拟DOM两种创建方式(二)

一、Hello 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 src="../js/react.development.js"></script>
    <!-- 引入react-dom支持react操作dom -->
    <script src="../js/react-dom.development.js"></script>
    <!-- 引入Bable 用于将jsx转化为js -->
    <script src="../js/babel.min.js"></script>
    <!-- 此处一定要写Bable -->
    <script type="text/babel">
      //创建虚拟DOM
      const VDOM = <h1>Hello,React</h1>;
      //渲染虚拟DOM
      ReactDOM.render(VDOM,document.getElementById('test'))
    </script>
  </body>
</html>

二、虚拟DOM的两种创建方式

使用jsx创建虚拟DOM

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>使用jsx创建</title>
  </head>
  <body>
    <!-- 准备好一个容器 -->
    <div id="test"></div>
    <!-- 引入react核心库 -->
    <script src="../js/react.development.js"></script>
    <!-- 引入react-dom支持react操作dom -->
    <script src="../js/react-dom.development.js"></script>
    <!-- 引入Bable 用于将jsx转化为js -->
    <script src="../js/babel.min.js"></script>
    <!-- 此处一定要写Bable -->
    <script type="text/babel">
      //创建虚拟DOM
      const VDOM = <h1 id="title">Hello,React</h1>;
      //渲染虚拟DOM
      ReactDOM.render(VDOM,document.getElementById('test'))
    </script>
  </body>
</html>

使用js创建虚拟DOM

<script type="text/javascript">
      //创建虚拟DOM
     const VDOM=React.createElement('h1',{id:'title'},'Hello React')
      //渲染虚拟DOM
      ReactDOM.render(VDOM,document.getElementById('test'))
    </script>

三、虚拟DOM和真实DOM的对比

  • 本质是Object类型的对象(一般对象)
  • 虚拟DOM比较轻,真实DOM比较重,因为虚拟DOM是React内部在用
  • 虚拟DOM最终会被React转化为真实DOM,呈现在页面上


相关文章
|
4月前
|
JavaScript 前端开发 容器
js之dom学习
js之dom学习
91 0
|
4月前
|
JavaScript 前端开发 算法
React 虚拟 DOM 深度解析
【10月更文挑战第5天】本文深入解析了 React 虚拟 DOM 的工作原理,包括其基础概念、优点与缺点,以及 Diff 算法的关键点。同时,分享了常见问题及解决方法,并介绍了作者在代码/项目上的成就和经验,如大型电商平台的前端重构和开源贡献。
82 3
|
5月前
|
JavaScript 前端开发
react字符串转为dom标签,类似于Vue中的v-html
本文介绍了在React中将字符串转换为DOM标签的方法,类似于Vue中的`v-html`指令,通过使用`dangerouslySetInnerHTML`属性实现。
153 0
react字符串转为dom标签,类似于Vue中的v-html
|
5月前
|
XML JavaScript 前端开发
学习react基础(1)_虚拟dom、diff算法、函数和class创建组件
本文介绍了React的核心概念,包括虚拟DOM、Diff算法以及如何通过函数和类创建React组件。
54 3
|
5月前
|
JavaScript 前端开发
react学习(3)创建虚拟dom的两种方式
react学习(3)创建虚拟dom的两种方式
184 67
|
4月前
|
JavaScript
HTML DOM 节点树
HTML DOM 节点是指在 HTML 文档对象模型中,文档中的所有内容都被视为节点。整个文档是一个文档节点,每个 HTML 元素是元素节点,元素内的文本是文本节点,属性是属性节点,注释是注释节点。DOM 将文档表示为节点树,节点之间有父子和同胞关系。
|
4月前
|
JavaScript
HTML DOM 节点
HTML DOM(文档对象模型)将HTML文档视为节点树,其中每个部分都是节点:文档本身是文档节点,HTML元素是元素节点,元素内的文本是文本节点,属性是属性节点,注释是注释节点。节点间存在父子及同胞关系,形成层次结构。
|
4月前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
XML DOM 遍历节点树
|
4月前
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)
|
4月前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
XML DOM 遍历节点树