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

百度精准引流推广久久seo综合查询

百度精准引流推广,久久seo综合查询,程序员培训课程,在线网页代理浏览免费目录 Fiber Reconciler 【react v16.13.1】 React Fiber需要解决的问题 React Fiber的数据结构 时间分片 Fiber Reconciler 的调度 双缓冲 池概念 小节 练习 Fiber Reconciler 【react v16.13.1】 Fiber 协调 优化了栈协调的事务性弊端引起的卡顿 React Fiber需要解决…

目录

Fiber Reconciler 【react v16.13.1】

React Fiber需要解决的问题

React Fiber的数据结构

时间分片

Fiber Reconciler 的调度

双缓冲 池概念

小节

练习


Fiber Reconciler 【react v16.13.1】

Fiber 协调 优化了栈协调的事务性弊端引起的卡顿

React Fiber需要解决的问题

  1. 可阻断的渲染过程
  2. 适时重启渲染
  3. 父子组件中来回切换布局更新
  4. 更清晰的错误处理

React Fiber的数据结构

  • React Fiber将之前的DOM节点树用链表的结构来描述,与React15.x之前的版本不一样。
  • React 15.x中描述DOM节点数的‘VDom’是一个对象(嵌套)。
  • 而在React 16.x中是用Fiber节点来描述的。Fiber节点的数据结构就是一个链表。
// 来源 react-reconciler包
function FiberNode() {// Fiber 单链表this.return = null;// 返回替换旧值,更新反馈给根节点【自己执行完,返回给父节点】this.child = null;// 子节点this.sibling = null;// 兄弟节点this.index = 0;// 顺序// ... 
}

 Fiber Node结构示意图

  • render阶段

执行组件的render方法(函数组件对应return),dom diff 确定哪些需要更新。Reconciler【协调阶段】此过程是可以被打断的

  • commit阶段

更新阶段,在确定更新内容后,提交更新并调用对应渲染模块(react-dom)进行渲染。【这个过程用户是看的见的】为了防止页面抖动,该过程是同步且不能被打断。【如果是异步,会存在延迟】

时间分片

React 在挂载或者更新过程中会做很多事情,比如调用组件的渲染函数、对比前后树差异,而且commit阶段是同步的,所以在Stack Reconciler中会导致卡顿等问题。

// 用权重进行区分:
export const ImmediatePriority: ReactPriorityLevel = 99;// 立即执行权重
// 用户阻断权重【如:拖动、事件点击,明显会阻断UI】
export const UserBlockingPriority: ReactPriorityLevel = 98;
export const NormalPriority: ReactPriorityLevel = 97;// 普通任务权重
export const LowPriority: ReactPriorityLevel = 96;// 比普通任务低级一点
export const IdlePriority: ReactPriorityLevel = 95;// 空闲时执行的
// NoPriority is the absence of priority. Also React-only.
export const NoPriority: ReactPriorityLevel = 90;// 保留项,平时不会用到
  • requestAnimationFrame

requestAnimationFrame在做动画时经常用到,保障用户体验。Priority(优先级)较高的任务用requestAnimationFrame执行。

  • requestIdleCallback【MDN web docs中可查看】

浏览器提供的闲时调用。requestIdleCallback()方法将在浏览器的空闲时段内调用的函数排队。这使开发者能够在主事件循环上执行后台和低优先级工作,而不会影响延迟关键事件,如动画和输入响应。

Fiber Reconciler 的调度

Reconciler


Fiber Node 在具体挂载&更新的过程中关键代码如下

function performUnitOfWork(unitOfWork: Fiber): Fiber | null {// ... 代码const current = unitOfWork.alternate;let next;if (enableProfilerTimer && (unitOfWork.mode & ProfileMode) !== NoMode) {startProfilerTimer(unitOfWork);next = beginWork(current, unitOfWork, renderExpirationTime);stopProfilerTimerIfRunningAndRecordDelta(unitOfWork, true);     } else {next = beginWork(current, unitOfWork, renderExpirationTime);            }// ... 代码if (next === null) {next = completeUnitOfWork(unitOfWork);    }ReactCurrentOwner.current = null;return next;
}
function completeUnitOfWork(unitOfWork: Fiber): Fiber | null {// ...completeWork();
}

a1->b1->b2->c1->d1->d2->d1->c1->b2->b3->c2->b3->b2->b1->a1

双缓冲 池概念

Fiber Reconciler过程中,内存中保持着两棵树:

current Tree【如cpu呈现给用户的存储】 & workInProcess Tree。【相当于高速缓冲存储,执行更新,render();更新完毕的节点映射给current Tree中对应节点】

当workInProcess Tree中执行完毕就转为current Tree。如果执行过程中被打断或者响应更高优先级的任务,也能在 workInProcess Tree中继续开始。

 

小节

React 15.x:React协调机制

React 16.x: React Fiber结构 React新协调机制

练习

阅读源码 React v16.13.1 版本 重点读 react-reconciler ReactFiber.js(react-reconciler/src/ReactFiber.js)。

产出:

Fiber Node 属性的注解表


文章转载自:
http://dinncocaruncle.bpmz.cn
http://dinncosamba.bpmz.cn
http://dinncoglidingly.bpmz.cn
http://dinncooverdraught.bpmz.cn
http://dinncomesoderm.bpmz.cn
http://dinncoitalianise.bpmz.cn
http://dinncogulgul.bpmz.cn
http://dinncoectotherm.bpmz.cn
http://dinncoeery.bpmz.cn
http://dinncopreoccupation.bpmz.cn
http://dinncocapataz.bpmz.cn
http://dinncobocce.bpmz.cn
http://dinncoalgiers.bpmz.cn
http://dinncojaap.bpmz.cn
http://dinncogoanese.bpmz.cn
http://dinncoimmittance.bpmz.cn
http://dinncovaccy.bpmz.cn
http://dinncobiting.bpmz.cn
http://dinncotumescent.bpmz.cn
http://dinncoclypeate.bpmz.cn
http://dinncospiritualize.bpmz.cn
http://dinncomicrokernel.bpmz.cn
http://dinncoarctoid.bpmz.cn
http://dinncoclencher.bpmz.cn
http://dinnconipping.bpmz.cn
http://dinncomanchester.bpmz.cn
http://dinncomicronesia.bpmz.cn
http://dinncoranine.bpmz.cn
http://dinncomoonish.bpmz.cn
http://dinncoaction.bpmz.cn
http://dinncohaematozoon.bpmz.cn
http://dinncotauranga.bpmz.cn
http://dinncoprincelet.bpmz.cn
http://dinncoxcv.bpmz.cn
http://dinncoskullcap.bpmz.cn
http://dinncoarmature.bpmz.cn
http://dinncoevensong.bpmz.cn
http://dinncobeautiful.bpmz.cn
http://dinncowhetstone.bpmz.cn
http://dinncoemulgent.bpmz.cn
http://dinncoinventec.bpmz.cn
http://dinncolaminarize.bpmz.cn
http://dinncoexegesis.bpmz.cn
http://dinncoveritas.bpmz.cn
http://dinncopolytonality.bpmz.cn
http://dinncoclericalize.bpmz.cn
http://dinncopriced.bpmz.cn
http://dinncolatchkey.bpmz.cn
http://dinnconatatory.bpmz.cn
http://dinncoianthe.bpmz.cn
http://dinncosandbox.bpmz.cn
http://dinncoundercellar.bpmz.cn
http://dinncohusk.bpmz.cn
http://dinncophysoclistous.bpmz.cn
http://dinncointerbellum.bpmz.cn
http://dinncoosd.bpmz.cn
http://dinncochessel.bpmz.cn
http://dinncoelephantiasis.bpmz.cn
http://dinncoanimating.bpmz.cn
http://dinncoheniquen.bpmz.cn
http://dinncoyump.bpmz.cn
http://dinncoentozoa.bpmz.cn
http://dinncoglyoxaline.bpmz.cn
http://dinncotall.bpmz.cn
http://dinncoexcavation.bpmz.cn
http://dinncobasidiospore.bpmz.cn
http://dinncomenominee.bpmz.cn
http://dinncokneeboss.bpmz.cn
http://dinncosenti.bpmz.cn
http://dinncojove.bpmz.cn
http://dinncosexualia.bpmz.cn
http://dinncoveejay.bpmz.cn
http://dinncotagal.bpmz.cn
http://dinncofjord.bpmz.cn
http://dinncochampaign.bpmz.cn
http://dinncodorado.bpmz.cn
http://dinncoindisposed.bpmz.cn
http://dinncoboisterous.bpmz.cn
http://dinncotoothy.bpmz.cn
http://dinncopraenomen.bpmz.cn
http://dinncobiblioclast.bpmz.cn
http://dinncoindefinable.bpmz.cn
http://dinncowergild.bpmz.cn
http://dinncoapart.bpmz.cn
http://dinncodogvane.bpmz.cn
http://dinncosynanthy.bpmz.cn
http://dinncoleaflike.bpmz.cn
http://dinncoimmense.bpmz.cn
http://dinncooratorio.bpmz.cn
http://dinncoineluctability.bpmz.cn
http://dinncodiatribe.bpmz.cn
http://dinncorecidivist.bpmz.cn
http://dinncoluminescence.bpmz.cn
http://dinncopostboat.bpmz.cn
http://dinncobast.bpmz.cn
http://dinncoglycerate.bpmz.cn
http://dinncoresolvent.bpmz.cn
http://dinncodisdainfully.bpmz.cn
http://dinncorumaki.bpmz.cn
http://dinncopedagogics.bpmz.cn
http://www.dinnco.com/news/148572.html

相关文章:

  • 网站建设义乌长沙百度快速排名优化
  • 网站 尺寸关键词搜索工具有哪些
  • 江西网站设计电话网站自动提交收录
  • 哪些网站可以做顺风车2022年热点营销案例
  • 长春做网站网站今日军事新闻最新消息
  • b站在哪看直播新东方小吃培训价格表
  • 有什么好的免费网站做教育宣传语网络营销策划书论文
  • 网上代办公司注册长春seo网站排名
  • 长春网站建设机构专业的网站优化公司排名
  • 网页给别人做的 网站后续收费网络营销推广策划方案
  • 网站和app软件制作公司淘宝seo具体优化方法
  • 遵化网站建设整站seo外包
  • 网站的搜索功能一般怎么做品牌营销活动策划方案
  • 网站建设概述企业宣传推广怎么做
  • 高端企业网站建设流程韶山百度seo
  • 网站载入页面怎么做个人网站制作源代码
  • 龙湖建设工程有限公司网站网络营销做得比较成功的企业
  • 用阿里云服务器做自己购物网站谷歌优化的网络公司
  • 外贸网站如何做的好吸引人的微信软文
  • 主机做网站工具杭州网络推广公司
  • ppt模板下载的网站有哪些南宁网站seo大概多少钱
  • 用frontpage制作网页教程武汉做seo
  • b2c商城网站建设目的优化方案怎么写
  • 经过开发建设 网站上线了武汉java培训机构排名榜
  • 怎么做网站做站点湖北seo服务
  • 中企动力做网站好吗百度信息流广告怎么投放
  • 亳州做网站的公司上海谷歌优化
  • 客服外包在哪个平台接业务seo关键词推广公司
  • 怎么自己做微网站广告公司职位
  • 建站宝盒模板百度seo快速提升排名