-
-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[vue] 什么是虚拟DOM? #227
Comments
个人浅显理解: |
虚拟 dom 是相对于浏览器所渲染出来的真实 dom 的,在react,vue等技术出现之前,我们要改变页面展示的内容只能通过遍历查询 dom 树的方式找到需要修改的 dom 然后修改样式行为或者结构,来达到更新 ui 的目的。 这种方式相当消耗计算资源,因为每次查询 dom 几乎都需要遍历整颗 dom 树,如果建立一个与 dom 树对应的虚拟 dom 对象( js 对象),以对象嵌套的方式来表示 dom 树,那么每次 dom 的更改就变成了 js 对象的属性的更改,这样一来就能查找 js 对象的属性变化要比查询 dom 树的性能开销小。 |
虚拟DOM是:用JS来模拟一颗 DOM 树,放在浏览器内存中 |
结合前面大佬的,组织下自己的话: |
virtual DOM 虚拟DOM,用普通js对象来描述DOM结构,因为不是真实DOM,所以称之为虚拟DOM。 虚拟 dom 是相对于浏览器所渲染出来的真实 dom而言的,在react,vue等技术出现之前,我们要改变页面展示的内容只能通过遍历查询 dom 树的方式找到需要修改的 dom 然后修改样式行为或者结构,来达到更新 ui 的目的。 这种方式相当消耗计算资源,因为每次查询 dom 几乎都需要遍历整颗 dom 树,如果建立一个与 dom 树对应的虚拟 dom 对象( js 对象),以对象嵌套的方式来表示 dom 树及其层级结构,那么每次 dom 的更改就变成了对 js 对象的属性的增删改查,这样一来查找 js 对象的属性变化要比查询 dom 树的性能开销小。 |
虚拟DOM:使用对象的结构来抽象化真实的DOM,VUE通过DIFF算法比较更新前后的两个虚拟DOM的差异,将差异最终反馈到真实的DOM上。 |
|
Virtual Dom虚拟dom的定义虚拟DOM(Virtual DOM)是一种用于提升前端框架性能的概念和技术。它是在内存中以JavaScript对象的形式存在的轻量级的DOM表示。虚拟DOM可以作为真实DOM的一种抽象,用于描述页面的结构和状态。 工作原理初始化:在应用加载时,通过解析组件的模板或JSX,创建虚拟DOM树的初始表示。 优势虚拟DOM的优势在于它可以提供更高效的DOM操作。通过在内存中进行比较和操作,减少了直接操作真实DOM的次数,从而减少了昂贵的DOM操作和重绘的开销。虚拟DOM可以批量处理变更,并通过高效的算法找到最小化的变更集,使得界面的更新更加快速和高效。 另外,虚拟DOM还提供了跨平台的能力。由于虚拟DOM是以JavaScript对象的形式存在,可以在不同的平台上运行,例如浏览器、移动端和服务器端。这使得使用同一套代码来构建不同平台的应用变得更加容易。 |
[vue] 什么是虚拟DOM?
The text was updated successfully, but these errors were encountered: