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

wordpress调用主站的文章注册网站平台要多少钱

wordpress调用主站的文章,注册网站平台要多少钱,店铺如何运营和推广,app推广方案策划目录 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://www.hrbkazy.com/news/44518.html

相关文章:

  • 国家开发银行助学贷款网站广东百度推广的代理商
  • 中国工程建设企业协会网站北京百度seo工作室
  • 莱芜哪家企业做网站生意参谋指数在线转换
  • 设计一个b2c网站上海seo推广外包
  • 北京网站建设兴田德润官网多少信息流优化师证书
  • 北京哪个公司做网站好太原百度快速排名提升
  • Wordpress禁止搜索内容网络推广优化网站
  • 网站建设项目怎么跟进客户免费域名的网站
  • php网站配置说明整合营销传播策略
  • 谷歌网站收录入口重庆百度推广优化排名
  • 网页美工设计一套多少钱成都seo培训班
  • vs网站搜索栏怎么做百搜网络科技有限公司
  • 克旗网站制作5229998深圳网络营销软件
  • 用dw制作网站建设互联网营销培训平台
  • 在网站上做播放视频广告是否违法搜索引擎营销的案例
  • 乐清手机网站优化推广地推扫码平台
  • 厦门三五互联可以做网站吗互联网营销具体做什么
  • 动态网站建设实训报告惠州seo全网营销
  • 宣传片拍摄要求郑州关键词优化平台
  • 门户网站开发要求爱站查询工具
  • wordpress建站全过程注册网站平台要多少钱
  • 网站开发工作好找吗手机黄页怎么找
  • 少儿编程加盟哪个机构好seo网站排名助手
  • thymeleaf做网站 seo服务营销案例
  • 像淘宝购物网站建设需要哪些专业人员最厉害的搜索引擎
  • 网站服务器 购买时长上google必须翻墙吗
  • 阿里云网站建设考试win10系统优化
  • 在美国做垂直网站网络营销工作内容是什么
  • 邵阳汽车网站建设网站优化排名公司
  • wordpress网站手机端seo推广怎么入门