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

建设一个营销型网站用dw做的网站怎么发布

建设一个营销型网站,用dw做的网站怎么发布,wordpress 批量导入用户,项目实施方案计划书整个React工作流程可以分为两大阶段#xff1a; Render阶段 Schecule Reconcile Commit阶段 注意#xff0c;Render阶段是在内存中运行的#xff0c;这意味者可以被打断#xff0c;而commit阶段一旦开始同步执行直到完成。 Renderer工作的阶段被称为commit阶段。commit阶…整个React工作流程可以分为两大阶段 Render阶段 Schecule Reconcile Commit阶段 注意Render阶段是在内存中运行的这意味者可以被打断而commit阶段一旦开始同步执行直到完成。 Renderer工作的阶段被称为commit阶段。commit阶段可以分为三个子阶段 before mutation阶段执行DOM操作前 mutation阶段执行DOM操作 layout阶段执行DOM操作后 其中上面的每个阶段又分为三个子阶段 commit×××Effects commit×××Effects_begin commit×××Effects_complete commit×××Effects 该函数是每个子阶段的入口函数finishedWor会作为firstChild参数传进去相关代码如下 function commit×××Effects(root,firstChild){ nextEffects firstChild; // 省略标记全局变量 commit×××Effects_begin(); // 省略重置全局变量 }因此在该函数中主要的工作是将firstChild赋值给全局变量nextEffects 然后执行commit×××Effects_begin。 commit×××Effects_begin 向下遍历FiberNode遍历的时候直到满足如下条件之一的FiberNode 当前的FiberNode的子FiberNode不包含该子阶段对应的flags当前的FiberNode不存在子FiberNode 接下来会对目标FiberNode执行commit×××Effects_complete方法。 commit×××Effects_complete 该方法针对flags做具体的操作主要包含以下三个步骤 对当前FiberNode执行flags对应的操作也就是执行commit×××EffectsOnFiber对当前FiberNode存在兄弟节点则对兄弟节点执行commit×××Effects_begin如不存在兄弟FiberNode则对父节点执行commit×××Effects_complete 总结一下每个阶段都会以DFS原进行遍历最终会在commit×××EffectsOnFiber针对不同的flags做出不同的处理。 before mutation阶段: before mutation阶段的主要工作发生在commitBeforeMutationEffects_complete中的commitBeforeMutationEffectsOnFiber方法这个方法主要是处理如两种类型的FiberNode ClassComponent:执行getSnapshotBeforeUpdateHostRoot: 清空HostRoot挂载的内容方便mutation阶段进行渲染 mutation阶段: 对于HostComponentmutation阶段的主要工作是对Dom元素的增删改查 删除Dom元素 删除dom的操作发生在commitMutationsEffects_begin方法中首先会拿到deletions数组,然后遍历该数组进行删除操作对应删除dom的方法为commitDeletion commitDeletion(root, nextEffect, renderPriorityLevel);commitDeletion内部的完整逻辑还是比较复杂的因为删除一个dom元素时不是删除就删除的还需要考虑以下几点 其子树中所有组件的unmount逻辑子树中所有ref属性的卸载操作其子树中所有Effect相关的Hook的destory回调的执行 div SomeClassComponent/ div ref{divRef} SomeFunctionsComponents / /div /div当删除最外层的div这个Dom元素时需要考虑 执行SomeClassComponent类组件对应的componentWillUnmount方法执行SomeFunctionsComponents 函数组件对应的useEffectuseLayoutEffect这些hook中对应的distory方法divRef的卸载操作 整个删除都是DFS顺序遍历每个子树的FiberNode,执行对应的操作 插入、移动Dom元素 上面的删除是在commitMutationsEffects_begin方法中执行的而插入和移动dom元素是在commitMutationsEffects_complete中的commitMutationsEffectsOnFiber方法里面执行的 Placement flag对应的操作方法为CommitPlacement,整个CommitPlacement可以分为三个步骤 从当前FiberNode向上遍历获取第一个类型为HostComponentHostRootHostPortal三者之一的祖先FiberNode,其对应的Dom元素是执行Dom操作的目标元素的父级DOM元素获取用于执行parentNode.insertBefore(child,before)方法before对应的DOM元素执行parentNode.insertBefore方法(存在before)或者parentNode.appendChild方法不存在before 对于还没有插入的DOM元素(对应的就是mount场景)inserBefore会将目标Dom元素插入到before之前appendChild会将目标DOM元素最为父DOM元素作为父DOM元素的最后一个子元素插入 对于ui中已经存在的DOM元素(对应的就是mount场景)inserBefore会将目标Dom元素移动到before之前appendChild会将目标DOM元素移动到同级最后 更新Dom元素 更新dom元素最主要的工作是更新对应的属性执行的方法是commitWork 其中变化的属性会以key,value相邻的形式存在FiberNode.updateQueue最终在fiberNode.updateQueue里面所保存的要变化的属性就会在一个名为updateDOMProperties方法被遍历然后进行处理这里的处理主要是处理如下的四种数据 style属性innerHTML直接文本节点变化其他元素属性 当mutations阶段中的主要工作完成后在进入layout阶段之前会完成Fiber Tree的切换 root.current finishedWorklayout 阶段 有关dom元素的操作在mutations中已经结束了。 该阶段主要工作几种在commitLayoutEffectOnFiber方法中在该方法内部会针对不同的FiberNode执行不同的操作 对于ClassComponent该阶段执行componentDidMount/update方法对于FunctionComponent,该阶段执行useLayoutEffect的回调函数。
http://www.dnsts.com.cn/news/135018.html

相关文章:

  • 苏中建设 官方网站网络网站开发培训
  • 淘客返利网站建设网页设计分为几个部分
  • 软件项目管理考试题及答案优化稳定网站排名
  • 大连装修网站推广长沙企业推广
  • 福州建站网络公司比特币交易网站可以做空吗
  • 网站开发团队简介如何写织梦响应式网站
  • 部队网站建设招标wordpress安装不了插件吗
  • 制作小网站免费软件下载app
  • 宁波网站建设公司信息查询吉安做网站
  • 网站开发费用构成网站搜索 收录优化
  • 纯文本网站做seo是要先有网站吗
  • 国外开源网站建设软件查企业的app软件 排名
  • 网站建设分金手指排名二九邢台营销型网站制作
  • 宁波网站建设风格公司宣传策划方案
  • 一流的基础微网站开发公司的网站建设费进入什么科目
  • 电子商城网站开发项目描述洪梅镇做网站
  • 做用户名和密码网站页面常州中小企业网站制作
  • 昆明网站建设哪家强网站编程
  • saas建站 彩页佛山做外贸网站代理商
  • 开不锈钢公司怎么做网站网站推广常用的方法
  • 做网站的经验和体会湖北专业的网瘾戒除学校有哪些
  • 济南专业网站开发公司下载整个网站的软件
  • 电影海报模板哪个网站好首页通知书
  • 网站后台 批量上传小程序管理平台登陆
  • 南充公司网站建设互联网创业项目什么赚钱
  • 可以做公众号封面图的网站织梦做网站好不好
  • 门户网站建设的书籍wordpress手机端图片
  • 潍坊高端模板建站仿亿欧网wordpress
  • 江苏企业建网站排名优化百度搜索app免费下载
  • 怎样做一个自己的网站海南省人才在线