Virtual Dom & JSX

简介: Virtual Dom & JSX

image.png


Virtual Dom

一、什么是 Virtual Dom

本质就是一个 js 对象,这个对象就是更加轻量级的、对真实 DOM 的一个描述

二、为什么需要 Virtual Dom

  • 从下面的图片可以看出一个真实 dom 节点所包含的内容(或成员)是非常多的,意味着我们每次操作真实 dom 时的成本是非常高的

image.png

image.png

  • 再来看虚拟 dom , 显然虚拟 dom 所包含的内容要比真实 dom 少了许多,因此我们操作 虚拟dom 的开销要比操作 真实dom 小很多
  • image.png

image.png

  • 虚拟 dom 带来的优点
  • 虚拟dom 可以维护程序的状态,跟踪上一次的状态
  • 通过比较前后两次状态的差异来更新真实 dom

三、Virtual Dom 的作用

  • 维护视图和状态的关系
  • 复杂视图情况下, 有助于提升渲染性能
  • 除了渲染真实 dom 以外,还可以实现 SSR(Nuxt.js/Next.js)原生应用(Weex/React Native)小程序(mpvue/unit-app)

image.png

JSX

一、JSX 是什么

JSX 即 JavaScript XML , 是 js 的扩展语法,它允许我们可以在 js 中使用类似于像 html 的模板. 如:

const jsx = <div>Hello world</div>;
复制代码

二、使用 JSX 的好处

  • 更加语义化 — JSX 将 JavaScript代码转换为更加语义化、更加有意义的标签
  • 更加直观

image.png

  • 抽象化 — 上面的 js 写法可能会因为 React 版本 不同造成,但是 JSX 提供的抽象能力能让我们无需修改任何代码
  • 关注点分离
  • HTML 和 JS 代码一起组成一个独立的组件,并把所有的逻辑和标签封装在其中,我们只需要关注每一个独立的组件
  • JSX 以干净且简洁的方式保证了组件中的标签和所有业务逻辑的相互分离
  • JSX 不仅提供了一个清晰、直观的方式来描述组件树,同时还让你的应用程序更加符合逻辑

三、关于 React 的引入

  • react 17 之前 —— JSX 仅仅只是 React.createElement(component, props, ...children) 函数的语法糖, 所以在只要我们需要使用到 JSX 语法,我们都必须手动引入 React

image.png

  • react 17 之后 —— 提供一个全新版本的 JSX 转换, 我们不需要在强制引入 react
  • react/jsx-runtimereact/jsx-dev-runtime 中的函数只能由编译器转换使用, 如果需要在代码中手动创建元素,可以选择使用 React.createElement

image.png


目录
相关文章
|
5月前
|
JavaScript 前端开发 算法
js开发:请解释什么是虚拟DOM(virtual DOM),以及它在React中的应用。
虚拟DOM是React等前端框架的关键技术,它以轻量级JavaScript对象树形式抽象表示实际DOM。当状态改变,React不直接操作DOM,而是先构建新虚拟DOM树。通过高效diff算法比较新旧树,找到最小变更集,仅更新必要部分,提高DOM操作效率,降低性能损耗。虚拟DOM的抽象特性还支持跨平台应用,如React Native。总之,虚拟DOM优化了状态变化时的DOM更新,提升性能和用户体验。
72 0
|
5月前
|
XML JavaScript 前端开发
说说React jsx转换成真实DOM的过程?
说说React jsx转换成真实DOM的过程
60 0
|
5月前
|
JavaScript 前端开发
第三章 创建虚拟DOM的两种方式和JSX的语法规则
第三章 创建虚拟DOM的两种方式和JSX的语法规则
|
5月前
|
XML JavaScript 前端开发
React中 Real DOM 和 Virtual DOM 的区别?优缺点?
React中 Real DOM 和 Virtual DOM 的区别?优缺点?
71 0
|
5月前
|
JavaScript 前端开发 算法
React中的Virtual DOM(看这一篇就够了)
React中的Virtual DOM(看这一篇就够了)
846 0
|
5月前
|
JavaScript 前端开发 算法
Virtual DOM
Virtual DOM
28 0
|
JavaScript 前端开发
说说Real DOM和Virtual DOM的区别?优缺点?
在页面渲染出的每个节点都是一个真实的DOM结构
|
JavaScript 前端开发
【DOM】Real DOM与Virtual DOM
【DOM】Real DOM与Virtual DOM
56 0
|
JavaScript 前端开发
Real DOM 和 Virtual DOM比较
Real DOM 和 Virtual DOM比较
81 0
|
XML JavaScript 前端开发
深入理解Virtual DOM的工作原理
虚拟DOM(Virtual DOM)是前端开发中的一个重要概念,它是用于提高页面渲染性能和优化开发体验的技术。理解虚拟DOM的工作原理对于前端开发者来说至关重要。在深入理解虚拟DOM的工作原理之前,让我们先了解一下DOM和Virtual DOM的基本概念。
130 0