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

赤峰市做网站建设的公司网站做兼容处理怎么设置

赤峰市做网站建设的公司,网站做兼容处理怎么设置,scratch编程,wordpress端口更改在React15及以前, Reconciler采用递归的方式创建虚拟Dom, 但是递归过程不可以中断, 如果组件的层级比较深的话, 递归会占用线程很多时间, 那么会造成卡顿。 为了解决这个问题, React16将递归的无法中断的更新重构为异步的可中断更新, Fiber架构诞生。 文章目录 1.Fiber的结构2…

在React15及以前, Reconciler采用递归的方式创建虚拟Dom, 但是递归过程不可以中断, 如果组件的层级比较深的话, 递归会占用线程很多时间, 那么会造成卡顿。

为了解决这个问题, React16将递归的无法中断的更新重构为异步的可中断更新, Fiber架构诞生。

文章目录

      • 1.Fiber的结构
      • 2.作为架构来说
      • 3.作为静态的数据结构
      • 4.作为动态的工作单元

1.Fiber的结构

作为架构来说, 之前React15的Reconciler采用递归的方式执行, 数据保存在递归调用栈中, 称为Stack Reconciler, React16的Reconciler基于Fiber节点实现, 称为Fiber Reconciler。

作为静态的数据结果来说, 每个Fiber节点对应一个组件, 保持了该组件的类型(函数组件/类组件/原生组件)和对应的DOM节点信息。

作为动态的工作单元来说, 每个Fiber节点保持了本次更新中该组件改变的状态, 要执行的工作(需要被删除/被插入页面中/被更新)。

function FiberNode(tag: WorkTag,pendingProps: mixed,key: null | string,mode: TypeOfMode,
) {// 作为静态数据结构的属性this.tag = tag;this.key = key;this.elementType = null;this.type = null;this.stateNode = null;// 用于连接其他Fiber节点形成Fiber树this.return = null;this.child = null;this.sibling = null;this.index = 0;this.ref = null;// 作为动态的工作单元的属性this.pendingProps = pendingProps;this.memoizedProps = null;this.updateQueue = null;this.memoizedState = null;this.dependencies = null;this.mode = mode;this.effectTag = NoEffect;this.nextEffect = null;this.firstEffect = null;this.lastEffect = null;// 调度优先级相关this.lanes = NoLanes;this.childLanes = NoLanes;// 指向该fiber在另一次更新时对应的fiberthis.alternate = null;
}

2.作为架构来说

作为架构来说, 每一个Fiber节点对应一个组件, 多个Fiber形成树。

// 指向父级Fiber节点
this.return = null;
// 指向子Fiber节点
this.child = null;
// 指向右边第一个兄弟Fiber节点
this.sibling = null;
function App() {return (<div>i am<span>KaSong</span></div>)
}

对应的Fiber树:

在这里插入图片描述

作为一个工作单元, return指节点执行完completeWork后返回的下一个节点。子Fiber节点以及兄弟节点完成工作后返回其父级节点, 故return代替父节点。

3.作为静态的数据结构

// Fiber对应组件的类型 Function/Class/Host...
this.tag = tag;
// key属性
this.key = key;
// 大部分情况同type,某些情况不同,比如FunctionComponent使用React.memo包裹
this.elementType = null;
// 对于 FunctionComponent,指函数本身,对于ClassCompoent,指class,对于HostComponent,指DOM节点tagName
this.type = null;
// Fiber对应的真实DOM节点
this.stateNode = null;

4.作为动态的工作单元

// 保存本次更新造成的状态改变相关信息
this.pendingProps = pendingProps;
this.memoizedProps = null;
this.updateQueue = null;
this.memoizedState = null;
this.dependencies = null;this.mode = mode;// 保存本次更新会造成的DOM操作
this.effectTag = NoEffect;
this.nextEffect = null;this.firstEffect = null;
this.lastEffect = null;

与调度优先级有关的属性:

// 调度优先级相关
this.lanes = NoLanes;
this.childLanes = NoLanes;
http://www.yayakq.cn/news/763243/

相关文章:

  • 建设网站门户网站开发调查问卷
  • 国内最好的网站服务器千图网免费素材图库ppt
  • 微软公司做网站的软件山西笑傲网站建设
  • 做搜狗网站排名软wordpress电台
  • 自己怎么做外贸英文网站网站可以做系统还原吗
  • 梁露 网站建设与实践莱芜房产论坛
  • 企业网站 优帮云设计工作室怎么注册
  • 高端网站建设 j磐石网络公司名称注册查询官网入口
  • 做网站要哪些技术新站seo优化快速上排名
  • 怎么建设网站赚钱手机ssh实训做网站代码下载
  • 自己搭建网站的步骤家具行业建设网站
  • 阿玛尼手表网站杭州专业网站设计制作
  • 企业网站空间不足怎么办网站开发流程表
  • dede网站制作网站创建教程
  • 农业网站模板上海网站设计哪家好
  • 模板网站有后台么wordpress仪表盘加载很慢
  • 企业网站开发研究现状wordpress调用热门标签
  • 网站建设工作的函wordpress 图片轮播插件下载
  • 技术网站模版介绍一个电影的网站模板
  • 为餐饮企业做网站推广平台建设网站
  • 山东鸿泰建设集团有限公司网站有几个网站
  • 太原seo网站排名衡水移动网站建设价格
  • 邢台手机网站建设报价关键路径
  • 室内设计网站排行榜前十名有哪些wordpress文章播放器
  • 做论坛网站看什么书先做个在线电影网站该怎么做
  • 如何查看网站建设时间东营网站建设方案策划
  • 临沂网站推广排名网站建设实训的意义
  • 深圳旅游网站开发哪家网站专门做折扣销售
  • 徐州市铜山区建设局网站wordpress纯代码
  • 宜宾有什么大型网站建设公司网站设计者