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

网站制作模板软件wordpress百度链接提交

网站制作模板软件,wordpress百度链接提交,潍坊市高新区建设局网站,外发加工网查询Fiber 上篇文章fiber简单理解记录了react fiber架构#xff0c;Hooks是基于fiber链表来实现的。阅读以下内容时建议先了解react fiber。 jsx - render function - vdom - fiber树 - dom vdom 转 fiber 的过程称为 recocile。diff算法就是在recocile这个过程…Fiber 上篇文章fiber简单理解记录了react fiber架构Hooks是基于fiber链表来实现的。阅读以下内容时建议先了解react fiber。 jsx - render function - vdom - fiber树 - dom vdom 转 fiber 的过程称为 recocile。diff算法就是在recocile这个过程中实现。 经过 reconcile 生成新的fiber树。这时候还没有处理副作用hooks、生命周期等,这些会在reconcile 结束之后处理。 react渲染分为两个阶段render 和 commit。 render指 vdom - fiber 的过程 commit: 指 fiber - dom 具体操作dom以及执行副作用函数的过程。其包含了三个小阶段before mutation、mutation真实操作dom、 layout。 Hooks hooks是在哪个阶段处理呢 commit fiber - dom hooks的数据保存在哪里呢 fiber 的 memoizedState 链表上存取数据。 是什么时候构造这个链表呢 在第一次调用 useXxx 的时候 一、 useRef 语法const refContainer useRef(initialValue); 作用useRef 返回一个可变的 ref 对象其内部只有一个 current 属性被初始化为传入的参数initialValue useRef是怎么实现的呢 第一次调用 useRef 会走到 mountRef 在 mountRef 里可以看到它创建了一个 hook 节点然后设置了 memoizedState 属性为有 current 属性的对象也就是 ref 对象。 //以下代码为源码中相关代码缩写详细过程请看源码 function mountRefT(initialValue: T): {current: T} {const hook mountWorkInProgressHook();const ref {current: initialValue};hook.memoizedState ref;return ref }mountWorkInProgressHook函数用来具体创建 hook 链表 其第一个节点挂在 fiber 的 memoizedState 属性上后面的挂在上个节点的 next 属性上。 第二次调用 useRef 会走到 updateRef 这里的 updateRef 就是取出 hook 的 momorizedState 的值直接返回了 所以 useRef 的返回的 ref 对象始终是最开始那个。 二、useMemo 语法 const cachedValue useMemo(calculateValue, dependencies) 作用 它在每次重新渲染的时候能够缓存计算的结果。当依赖的值不变时始终返回之前的值依赖值变化时创建新的值 那它是怎么实现的呢 useMemo 同样也是分为 mountMemo 和 updateMemo 两个阶段。 第一次调用 useMemo 会执行 mountMemo 创建 hook, 执行传入的 nextCreate 函数把值设置到 hook.memoizedState 属性上。 更新数据时执行的是 updateMemo 在 updateMemo 的实现中有一个关键函数 areHookInputsEqual它用于比较依赖项数组 如果依赖数组都没变那就返回之前的值否则创建新的值更新到 hook.memoizedState。 三、useCallback 语法 const cachedFn useCallback(fn, dependencies) 作用 是一个允许你在多次渲染中缓存函数的 React Hook。当依赖的值变化时才执行fn。 那它是怎么实现的呢 useCallback 同样也是分为 mountCallback 和 updateCallback 两个阶段。 第一次调用 mountCallback 第二次及以后updateCallback 其实现和 useMemo 基本一致。其原理都是通过areHookInputsEqual 函数进行依赖项比对区别在于 useMemo 返回是新数据对象而 useCallback 返回是回调函数 小结 hook 的数据存放在 fiber 的 memoizedState 属性的链表上每个 hook 对应一个节点第一次执行 useXxx 的 hook 会走 mountXxx 的逻辑来创建 hook 链表之后会走 updateXxx 的逻辑。 当然前面的 useRef、useCallback、useMemo 都相对简单。但 useEffect 和 useState 就相对复杂了。考虑到篇幅问题useEffect 详情记录在写一篇文章中。 参考来源 reacthooks源码 react中文文档
http://www.pierceye.com/news/762328/

相关文章:

  • 做海报的网站有哪些内容windows同步wordpress
  • 制作网页的网站费用属于资本性支出吗安徽区块链虚拟币网站开发方案
  • 做网站前产品经理要了解什么搜索引擎优化免费
  • 广州网站建设技术方案营销网站推广策略
  • 郑州网站建设、中国菲律宾铁路项目
  • 潜江网站开发学校网站建设领导小组
  • 桂林临桂区建设局网站厦门 微网站建设公司哪家好
  • 如何用云服务器搭建个人网站有些人做网站不用钱的,对吗?
  • 月嫂网站建设方案建设网站询价对比表模板
  • 医院网站建设 价格低深圳市高端网站建设
  • 太原做学校网站的公司网站免费观看
  • 企业网络营销是什么seo教程百度云
  • wordpress 下载站模板高清免费观看电视网站
  • 网站后期维护怎么做招c1驾驶员300元一天
  • 番禺区移动端网站制作山西省两学一做网站
  • 网上销售 网站建设浙江创都建设有限公司网站
  • 网站商城的公司运营结构html5 app开发工具
  • 酒类网站建设方案案中山网站建设公司排名
  • wordpress怎么做子页面如何刷seo关键词排名
  • 网站怎样做免费优化有效果成都十大好的装修公司
  • 网站外链分析工具新闻发布会主持词
  • 网站开发哪个工具学做网站需要懂什么
  • 一般做推广网站的客户需求仕什么赣州市城乡建设局官方网站
  • 中山网站搜索引擎优化婚庆策划公司的商业模式
  • 百度云主机做网站天津展示型网站建设外包
  • 做公司网站利润营销型企业网站系统模板下载
  • 怎样在绍兴e网做网站衡水网站优化
  • 网站建设现在还有没有市场优秀网站建设报价
  • 兰州网站维护公司网站规划有哪些内容
  • 简单展示网站模板电脑网页打不开