美文网首页
虚拟dom的概念

虚拟dom的概念

作者: biubiudog | 来源:发表于2019-04-10 14:21 被阅读0次

dom本质:

浏览器的概念,用js对象来表示页面上的元素,并提供了操作dom对象的API

DOM树的概念:

一个网页的呈现过程:
1、浏览器请求服务器获取页面HTML代码
2、浏览器在内存中,解析dom结构,并在浏览器内存中渲染出一颗dom树。
3、浏览器把dom树,呈现在页面上。

虚拟dom:

指的是用js对象的形式,来模拟页面上Dom嵌套关系。(以js对象的形式存在的)
例如:

<div id="name" title= "name">
ccccc 
<p>dhhhh</p>
</div>

文本也属于子节点
模拟dom为:

var div = {
  tagName: 'div',
  attrs:{
    id: "name" ,
    title: "name"   
},
childrens: [
  'ccccc',
    {
      tagName: 'p',
      attrs:{},
      childrens: [
          'dhhhh',
      ]
    }
]
}

dom和虚拟dom的区别:

  • dom:浏览器中提供的概念,用JS对象表示页面上的元素,并提供了操作元素的api。
  • 虚拟dom:框架中的概念,是开发框架的程序猿手动用js对象来模拟dom元素和嵌套关系。
    本质: 用就是对象来模拟dom元素和嵌套关系
    目的: 实现页面元素的高效更新。

Diff算法:

  • tree diff:新旧两棵dom树,dom层逐级对比完毕,则所有需要被按需更新的元素,必然能够找到。
  • component diff:在进行tree diff的时候,每一层中组件级别的对比,叫做component diff,
    如果对比前后组件类型相同,则暂时认为此组件不需要被更新;
    如果对比前后组件类型不同,则需要移除旧组件,创建新组件,并追加到页面上。
  • element diff 在进行组件对比的时候,如果两个组件类型相同,则需要进行元素级别的对比。

相关文章

  • 学习笔记(十六)Vue.js源码剖析 - 虚拟DOM

    Vue.js源码剖析 - 虚拟DOM 虚拟DOM概念回顾 什么是虚拟DOM? 虚拟DOM(Virtual DOM)...

  • Vue 源码-diff算法

    虚拟 DOM 概念虚拟 DOM是对 DOM 的 js 抽象表示,能够描述 DOM 结构和关系,应用的各种状态变化作...

  • 什么是虚拟DOM?如何实现一个虚拟DOM?说说你的思路

    一、什么是虚拟DOM 虚拟 DOM (Virtual DOM )这个概念相信大家都不陌生,从 React 到 Vu...

  • JavaScript练习 - convertHTMLToJson

    在使用vue时,我们常说到的一个概念就是虚拟DOM。那么虚拟DOM是什么?虚拟DOM就是根据真实DOM模拟出的一个...

  • react第三天

    react的核心知识点虚拟domJSX语法单向数据绑定组件化 虚拟dom的概念 1.虚拟dom和dom的本质区别:...

  • 如何实现 React 中的虚拟 DOM (下)

    看过一些有关虚拟 dom 文章,多半是从概念上讲解虚拟 dom 实现方式和优点。通过代码分析讲解虚拟 dom 的文...

  • 虚拟dom的概念

    dom本质: 浏览器的概念,用js对象来表示页面上的元素,并提供了操作dom对象的API DOM树的概念: 一个网...

  • 虚拟DOM

    虚拟DOM 基础概念: virtual DOM是对真实DOM的描述和映射 当Virtual DOM改变后,我们得到...

  • React面试题

    Q1:什么是虚拟DOM? 难度::star: 虚拟DOM(VDOM)它是真实DOM的内存表示,一种编程概念,一种模...

  • Diff 算法、key

    概念 DOM diff 就是对比两棵虚拟 DOM 树的算法。当组件变化时,会得到一个新的虚拟 DOM,diff 算...

网友评论

      本文标题:虚拟dom的概念

      本文链接:https://www.haomeiwen.com/subject/izjfiqtx.html