美文网首页
虚拟DOM和diff算法(React学习笔记_08)

虚拟DOM和diff算法(React学习笔记_08)

作者: 小王子__ | 来源:发表于2021-11-22 17:16 被阅读0次

虚拟DOM和diff算法

React更新视图的思想是:只要state变化就重新渲染视图。组件中只有一个DOM元素需要更新的时候,不会把整个组件的内容重新渲染到页面中,只是部分更新,只更新变化的地方。 这就涉及到虚拟DOM配合Diff算法。

虚拟DOM:本质上就是一个JS对象用来描述在屏幕上看到的内容(UI)。

image

虚拟DOM和Diff算法执行过程:

1, 初次渲染的时候,react会根据初始state创建一个虚拟DOM对象(树),根据虚拟DOM生成真正的DOM渲染到页面中
2,党数据变化后(setState()), 重新根据新的数据,创建新的虚拟DOM对象(树),与上一次得到的虚拟DOM对象,使用Diff算法对比(找不同),得到需要更新的内容。
3,最终,react只将变化的内容更新(patch)到DOM中,重新渲染到页面。
  • 组件render()调用后,根据状态和JSX结构生成虚拟DOM对象。
  • render方法调用仅仅说明要进行Diff算法

React原理总结:

  • 原理有助于我们更好的理解React自身的运行机制
  • setState是异步更新数据的
  • 父组件更新导致子组件更新,纯组件提升性能
  • 思路清晰简单位前提,虚拟DOM和Diff保效率
  • 虚拟DOM:可以看成是由state + JSX共同生成的用来描述页面结构的JS对象
  • 虚拟DOM的真正价值不是性能,而是让react脱离了浏览器的束缚。虚拟DOM仅仅是一个js里面的对象,只要能运行js的环境就可以运行react,这就给react可以做跨平台的应用提供了保障。

---------- 关注公众号,参与免费抽奖--------------

image

相关文章

  • react VS Vue diff算法

    react diff diff算法的作用:数据更改,生成相应的虚拟DOM,与真实DOM作对比,通过diff算法,对...

  • 虚拟DOM和diff算法(React学习笔记_08)

    虚拟DOM和diff算法 React更新视图的思想是:只要state变化就重新渲染视图。组件中只有一个DOM元素需...

  • 虚拟dom和diff算法

    虚拟DOM和diff算法 diff:精细化比对最小量更新 真实DOM和虚拟DOM 虚拟DOM:用JavaScrip...

  • 深入理解react中的虚拟DOM、diff算法

    文章结构: React中的虚拟DOM是什么? 虚拟DOM的简单实现(diff算法) 虚拟DOM的内部工作原理 Re...

  • React学习之解读React源码

    首先理解ReactElement和ReactClass的概念。想要更好的利用react的虚拟DOM,diff算法的...

  • React应用架构

    【插播一条】虚拟DOM Diff算法 我们都知道React通过虚拟DOM机制可以有效解决复杂的DOM操作带来的性能...

  • React 虚拟 Dom 和 diff 算法

    React将DOM抽象为虚拟DOM, 然后通过新旧虚拟DOM 这两个对象的差异(Diff算法),最终只把变化的部分...

  • 学习笔记:深入RN知识总结

    一、RN底层实现原理 1.1、 React内部核心:虚拟DOM技术+diff算法。 React框架,将JSX代码渲...

  • React 性能调优

    为什么需要调优 React 提高性能的方式:虚拟DOM, diff算法,将DOM操作减到最少, 但是... 父组件...

  • react(其一)

     react、reactjs、react native、virtual dom、diff算法、redux....,...

网友评论

      本文标题:虚拟DOM和diff算法(React学习笔记_08)

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