当前位置: 首页 > news >正文

郑州网站推广单位服装微商城网站建设

郑州网站推广单位,服装微商城网站建设,wordpress是静态页面,免费做外贸网站文章目录 React Diff算法一、它的作用是什么#xff1f;二、React的Diff算法1.了解一下什么是调和#xff1f;2.react的diff算法3.React Diff的三大策略4.tree diff#xff1a;1、如果DOM节点出现了跨层级操作#xff0c;Diff会怎么办? 5. component diff#xff1a;6. e… 文章目录 React Diff算法一、它的作用是什么二、React的Diff算法1.了解一下什么是调和2.react的diff算法3.React Diff的三大策略4.tree diff1、如果DOM节点出现了跨层级操作Diff会怎么办? 5. component diff6. element diff6. element diff 总结 React Diff算法 diff算法是虚拟DOM产生的一个概念用来计算出虚拟DOM中真正变化的部分并只针对该部分进行原生DOM操作而非重新渲染整个页面从而提高了页面的渲染效率。 一、它的作用是什么 渲染真实DOM的开销很大有时候我们修改某个数据时直接渲染到真实DOM上会引起整个DOM树的重绘和重排。我们希望只更新我们该的那么一小块DOM而不是整个DOMdiff算法就帮我们实现了这一点。 diff算法本质就是找出两个对象之间的差异目的是尽可能做到节点复用。 二、React的Diff算法 1.了解一下什么是调和 将virtualDOM虚拟DOM转换成actualDOM真实DOM的最少操作过程就叫调和简单理解就是简化算法复杂度。 2.react的diff算法 react的diff算法就是实现了上述的调和简化了算法的复杂度。 3.React Diff的三大策略 react用tree diff(树比较)、component diff组件比较、element diff元素比较三大策略将O(n^3)的复杂度转化为O(n)的复杂度 (1) 策略一tree diffWeb UI中DOM节点跨层级的移动操作特别少可以忽略不计。 (2) 策略二component diff拥有相同类的两个组件生成相似的树形结构拥有不同类的两个组件生成不同的树形结构。 (3) 策略三element diff对于同一层级的一组子节点通过唯一id区分。 4.tree diff (1) React通过updateDepth对比Virtual DOM树进行层级控制。 (2) 对树分层比较两颗树只对同一层次节点进行比较。如果该节点不存在时则该节点及其子节点会被完全删除不会再进一步比较。 (3) 只需遍历一次就能完成整颗DOM树的比较。 1、如果DOM节点出现了跨层级操作Diff会怎么办? Tree Diff是对树的每一层进行遍历如果某组件不存在了则会直接销毁。 5. component diff (1) 同一类型的两个组件按原策略(层级比较)继续比较Virtual DOM树即可。 (2) 同一类型的两个组件组件A变化为组件B时可能Virtual DOM没有任何变化如果知道这点可节省大量计算时间所以用户可以通过shouldComponentUpdate()来判断是否需要判断计算。 (3) 不同类型的组件将一个组件判断为dirtycomponent脏组件从而替换整个组件的所有节点。 注意如上图所示当组件D变为组件G时即使这两个组件结构相似一旦React判断D和G是不用类型的组件就不会比较两者的结构而是直接删除组件D重新创建组件G及其子节点。虽然当两个组件是不同类型但结构相似时进行diff算法分析会影响性能但是毕竟不同类型的组件存在相似DOM树的情况在实际开发过程中很少出现因此这种极端因素很难在实际开发过程中造成重大影响。 6. element diff 当节点处于同一层级时diff提供三种节点操作删除、插入、移动。 插入组件C不在集合(A,B)中需要插入。 删除 组件D在集合(A,B,D)中但D的节点已经更改不能复用和更新所以需要删除旧的D再创建新的。组件D之前在集合(A,B.D)中但集合变成新的集合(A,B)了D就需要被删除。 移动组件D已经在集合(A,B,C,D)里了且集合更新时D没有发生更新只是位置改变如新集合(A,D,B,C)D在第二个无需像传统DIFF让就集合的第二个B和新集合的第二个D比较并且删除第二个位置的B在第二个位置插入D而是添加唯一key进行区分移动即可。 (1)B不移动不赘述更新l astIndex1 (2)新集合取得 E发现旧不存在故在lastIndex1的位置 创建E更新lastIndex1 (3)新集合取得CC不移动更新lastIndex2 (4)新集合取得AA移动同上更新lastIndex2 (5)新集合对比后再对旧集合遍历。判断 新集合 没有但 旧集合 有的元素如D新集合没有旧集合有发现 D删除Ddiff操作结束。 6. element diff 基于tree diff 开发组件时注意保持DOM结构的稳定即尽可能少地动态操作DOM结构尤其是移动操作。当节点数过大或者页面更新次数过多时页面卡顿的现象会比较明显。这时可以通过 CSS 隐藏或显示节点而不是真的移除或添加 DOM 节点。 基于component diff 注意使用 shouldComponentUpdate() 来减少组件不必要的更新。对于类似的结构应该尽量封装成组件既减少代码量又能减少component diff的性能消耗。 基于element diff 对于列表结构尽量减少类似将最后一个节点移动到列表首部的操作当节点数量过大或更新操作过于频繁时在一定程度上会影响 React 的渲染性能。 总结 提示这里对文章进行总结 例如以上就是今天要讲的内容本文仅仅简单介绍了pandas的使用而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
http://www.sadfv.cn/news/379236/

相关文章:

  • 茶叶手机网站富阳网站建设公司
  • wordpress移动应用股票发行ipo和seo是什么意思
  • 营口网站seo淄博网站建设公司推荐
  • wordpress免费网站模板下载地址响应式网站建设策划
  • 微信如何做模板下载网站旅游类网站设计方案
  • 熊掌号做网站推广的注意事项贵阳天柱网站建设招聘
  • 一家专门做原产地的网站设计网站排行
  • 网站建设功能清单wordpress如何采集文章
  • 网页微信版官网登录密码登录百度首页关键词优化
  • 电子科技 深圳 网站建设医药做网站
  • 学校网站的建设目标百度站长提交网址
  • 网站正在建设中的英文智赢erp系统
  • 一级a做爰网站网站首页模板
  • 在百度怎么做网站团购网站设计
  • 为何网站需改版网站建设课程心得体会
  • 微网站无锡河北住房和城乡建设厅网站驱动
  • 物业管理网站开发背景北京营销型网站建站公司
  • 装潢建筑公司网站设计企业网站需要哪些功能
  • 泉州制作手机网站营销渠道分为三种模式
  • 怎么做网站的思维导图品牌网站开发设计
  • 湖南省网站建设公司网站备案信息查询
  • 专业系统网站小程序开发制作费用
  • 哪里学网站开发好做网站的代码
  • 做淘宝客网站的流程h5做的网站
  • dede网站开发步骤网页制作设计教程
  • 昆明网站开发推广花钱做网站注意什么
  • 网站建设费用计入什么会计科目在线网站软件免费下载
  • 网站建设方案书 广东python官方下载
  • 域名买完后如何做网站wordpress重新安装如何做
  • 怎么做属于自己的网站做网站的时候旋转图片