zoukankan      html  css  js  c++  java
  • react中的虚拟DOM和Diff

    虚拟dom:

    • DOM的本质是什么:浏览器中的概念,用JS对象来表示 页面上的元素,并提供了操作 DOM 对象的API;
    • 什么是React中的虚拟DOM:是框架中的概念,是程序员 用JS对象来模拟 页面上的 DOM 和 DOM嵌套;
    • 为什么要实现虚拟DOM(虚拟DOM的目的):为了实现页面中, DOM 元素的高效更新
    • DOM和虚拟DOM的区别:
      1. DOM:浏览器中,提供的概念;用JS对象,表示页面上的元素,并提供了操作元素的API;
      2. 虚拟DOM:是框架中的概念;而是开发框架的程序员,手动用JS对象来模拟DOM元素和嵌套关系;
      3. 本质: 用JS对象,来模拟DOM元素和嵌套关系;
      4. 目的:就是为了实现页面元素的高效更新;

    Diff:

    • tree diff:新旧两棵DOM树,逐层对比的过程,就是 Tree Diff; 当整颗DOM逐层对比完毕,则所有需要被按需更新的元素,必然能够找到;
    • component diff:在进行Tree Diff的时候,每一层中,组件级别的对比,叫做 Component Diff;
      1. 如果对比前后,组件的类型相同,则暂时认为此组件不需要被更新;
      2. 如果对比前后,组件类型不同,则需要移除旧组件,创建新组件,并追加到页面上;
      3. element diff:在进行组件对比的时候,如果两个组件类型相同,则需要进行 元素级别的对比,这叫做 Element Diff;
  • 相关阅读:
    1058 A+B in Hogwarts (20)
    1036. Boys vs Girls (25)
    1035 Password (20)
    1027 Colors in Mars (20)
    1009. Product of Polynomials (25)
    1006. Sign In and Sign Out
    1005 Spell It Right (20)
    1046 Shortest Distance (20)
    ViewPager页面滑动,滑动到最后一页,再往后滑动则执行一个事件
    IIS7.0上传文件限制的解决方法
  • 原文地址:https://www.cnblogs.com/150536FBB/p/13594892.html
Copyright © 2011-2022 走看看