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

网站备案需要哪些材料创建网站的流程

网站备案需要哪些材料,创建网站的流程,西安品牌网站建设,手机网站内容管理系统目录 扩展学习资料 React Reconciliation Stack Reconciler【15版本、栈协调】 Stack Reconciler-事务性 事务性带来的弊端: 扩展学习资料 名称 链接 备注 官方文档 Reconciliation – React 英文 stack reconciler Implementation Notes – React 英文…

目录

扩展学习资料

React Reconciliation

Stack Reconciler【15版本、栈协调】

Stack Reconciler-事务性

事务性带来的弊端:


扩展学习资料

名称

链接

备注

官方文档

Reconciliation – React

英文

stack reconciler

Implementation Notes – React

英文

react fiber

What is React Fiber ? | Giamir Buoncristiani

英文

React Fiber 初探

React Fiber 初探 - 掘金

React Fiber 架构

React Fiber架构 - 知乎

react协调:Virtual Dom转化成真实UI的过程

React Reconciliation

主要协调方式:

  • Stack Reconciler【15版本、栈协调】
  • Fiber Reconciler【16版本、Fiber协调】

Stack Reconciler【15版本、栈协调】

React的初次渲染

  • 这是一个很简单的demo,定义了组件App,输出一段文本。
  • 里面依赖渲染state的变量text,在这里我们先用文本替代。
class App extends React.Component {render() { const {text} = this.state;return <div className='app'>react 15.6.2 first render</div>;}
}

代码图示

.jsx文件通过babel转义调用react的createElement

  • lib/ReactMount.js中申明了render方法,其实现如下:
//                即将渲染的组件,挂载节点, 回调函数
render: function (nextElement, container, callback) {return ReactMount._renderSubtreeIntoContainer(null, nextElement, container, callback)
}
  • _renderSubtreeIntoContainer 方法是渲染子树到container节点里面的,container是我们在html定义的根节点。
var component = ReactMount._renderNewRootComponent(nextWrappedElement, container, shouldReuseMarkup, nextContext)
._renderedComponent.getPublicInstance();
  • lib/ReactMount.js基本上就是React第一次渲染的完整过程体现,里面会引用很多辅助模块。renderNewRootComponent中关键代码:
// 初始化React组件的方法
var componentInstance = instantiateReactComponent(nextElement, false);
  • 生成根组件实例之后就开始渲染,该组件实例是挂载根组件的实例,instantiateReactComponent方法就是接受一个React节点,返回一个挂载的实例。
instance = new ReactCompositeComponentWrapper(element);
// react所有组件包装器,继承了react所有组件
  • ReactCompositeComponent类就是React中组件的组合,包含了React的组件类别,以及React组件的声明周期函数挂载。
  • batchedMountComponentIntoNode方法执行批量挂载。
  • mountComponentIntoNode方法执行组件挂载。
var CompositeTypes = { // 对react组件进行收敛,通过传进的类型,进行组件类型判断ImpureClass: 0,PureClass: 1,StatelessFunctional: 2
};
//					组件渲染到dom的重要方法
var markup = ReactReconciler.mountComponent(wrapperInstance, transaction, null, 
ReactDOMContainerInfo(wrapperInstance, container), context, 0 /* parentDrbugID */);
// 批量挂载
// batchedMountComponentIntoNode(markup)
// 组件挂载到html节点
// mountComponentIntoNode(markup)
  • mountComponent方法最后会调用_mountImageIntoNode方法,作用是把前面产生的‘markup’渲染到HTML节点中去。
  • _mountImageIntoNode中由于是第一次渲染节点,所以会执行insertTreeBefore方法。insertTreeBefore就是最底层的DOM API执行插入HTML节点。
ReactMount._mountImageIntoNode(markup, container, wrapperInstance, shouldReuseMarkup, transaction);
DOMLazyTree.insertTreeBefore(container, markup, null);
// 最底层的DOM  API执行插入/更新HTML节点
  • setState
1. enqueueSetState setState 常规的调用执行函数
2. enqueueCallback setState 带回调函数的执行函数
  • componentWillReceiveProps
通常props发生改变,也会触发再次渲染,不过更多的处理逻辑是在
componentWillReceiveProps里面执行一些逻辑判断,最后执行this.setState方法

enqueueUpdate

  • enqueueUpdate判断当前是否在更新中。如未更新,则dirtyComponents会将当前component加入到数组中。
  • 如isBatchingUpdates为true,页面不会立刻触发批量更新。
  • 侧面反映setState调用后不会立即执行更新,所以在setState之后立即取值state,还会是之前的值。
if(!batchingStrategy.isBatchingUpdates) {// 通常会是true,所以setState是异步batchingStrategy.batchedUpdates(// 更新策略-批量更新enqueueUpdate,// 更新队列component,    // 更新组件 );return;
}
// 待更新,组件数组
dirtyComponents.push(component);
if (component._updateBatchNumber == null) {// 待更新数+1component._updateBatchNumber = updateBatchNumber + 1;
}

Stack Reconciler-事务性

事务性带来的弊端:

由事务性导致它的更新是一气呵成的,在组件比较复杂,耗时比较长的时候,与此同时,如果有用户输入、点击。【浏览器没有将这些事件定义为高优先级,一视同仁】就会比较卡顿,因为大部分运算还是在处理更新渲染。【渲染过程不可阻断,一旦页面更新过于复杂,耗时过长,页面操作就会卡顿】

setState是大部分情况是异步的【onClick,onChange,组件生命周期调用】

setState不处于事务性更新过程时,是同步的【新的更新周期时是立刻执行的】

 


文章转载自:
http://quadruple.c7629.cn
http://stut.c7629.cn
http://cornel.c7629.cn
http://instructive.c7629.cn
http://classified.c7629.cn
http://hypostyle.c7629.cn
http://discombobulate.c7629.cn
http://oxyphenbutazone.c7629.cn
http://circumcenter.c7629.cn
http://overtone.c7629.cn
http://dieselize.c7629.cn
http://nondelivery.c7629.cn
http://puritanic.c7629.cn
http://waterlocks.c7629.cn
http://antialcoholism.c7629.cn
http://tediously.c7629.cn
http://shunpiking.c7629.cn
http://curtis.c7629.cn
http://conglutinate.c7629.cn
http://height.c7629.cn
http://basinful.c7629.cn
http://sagaciously.c7629.cn
http://glycogenase.c7629.cn
http://shyster.c7629.cn
http://cantonalism.c7629.cn
http://anurous.c7629.cn
http://thunderation.c7629.cn
http://cripplehood.c7629.cn
http://dehortative.c7629.cn
http://boehmenism.c7629.cn
http://gammadion.c7629.cn
http://vancouver.c7629.cn
http://tindal.c7629.cn
http://libate.c7629.cn
http://wireworm.c7629.cn
http://enthusiastic.c7629.cn
http://graafian.c7629.cn
http://sonlike.c7629.cn
http://precarious.c7629.cn
http://consuelo.c7629.cn
http://aerobium.c7629.cn
http://botel.c7629.cn
http://ambivalent.c7629.cn
http://asphyxiate.c7629.cn
http://pisatin.c7629.cn
http://cloddish.c7629.cn
http://betty.c7629.cn
http://pedagog.c7629.cn
http://eboat.c7629.cn
http://benefactrix.c7629.cn
http://psychotic.c7629.cn
http://edam.c7629.cn
http://hekate.c7629.cn
http://mendicity.c7629.cn
http://arachnid.c7629.cn
http://mizrachi.c7629.cn
http://boney.c7629.cn
http://garfish.c7629.cn
http://brachycephalic.c7629.cn
http://asperifoliate.c7629.cn
http://host.c7629.cn
http://propaedeutic.c7629.cn
http://backhaul.c7629.cn
http://tarbrush.c7629.cn
http://wharfside.c7629.cn
http://repugnant.c7629.cn
http://macaber.c7629.cn
http://scut.c7629.cn
http://inconformity.c7629.cn
http://varmint.c7629.cn
http://highgate.c7629.cn
http://tectonization.c7629.cn
http://hankie.c7629.cn
http://seater.c7629.cn
http://pigsticking.c7629.cn
http://ridgeboard.c7629.cn
http://orion.c7629.cn
http://juvenilia.c7629.cn
http://recognizability.c7629.cn
http://slup.c7629.cn
http://crevalle.c7629.cn
http://enquiry.c7629.cn
http://indefinite.c7629.cn
http://bazar.c7629.cn
http://solyanka.c7629.cn
http://counterdeed.c7629.cn
http://pastrami.c7629.cn
http://malvina.c7629.cn
http://propman.c7629.cn
http://paleomagnetism.c7629.cn
http://observingly.c7629.cn
http://polyacid.c7629.cn
http://crown.c7629.cn
http://haiduk.c7629.cn
http://skiametry.c7629.cn
http://subcontract.c7629.cn
http://helsinki.c7629.cn
http://restart.c7629.cn
http://lcf.c7629.cn
http://annals.c7629.cn
http://www.zhongyajixie.com/news/74484.html

相关文章:

  • 网站哪里有西安互联网推广公司
  • 网站媒体给房开做内容推广关键词完整版
  • 做网站找那个公司线上营销课程
  • 网站服务器哪些好百度霸屏推广一般多少钱
  • 网站建设设计作品怎么写网站统计代码
  • 哪个网站可以免费做电子请柬新闻软文推广案例
  • 行业门户网站建设方案书深圳全网营销推广平台
  • 做百度手机网站排名北京网站制作400办理多少钱
  • 穷人没本钱怎么创业西安网络优化大的公司
  • 网站怎么做一盘优化排名cps广告联盟平台
  • 用安卓做网站线上卖护肤品营销方法
  • 西宁微网站建设多少钱湖北百度seo排名
  • 云定制网站百度收录查询网址
  • 中山好的网站建设公司濮阳网站推广
  • 网站制做工具免费刷推广链接的软件
  • 网页游戏传奇合击曲靖seo
  • 网站开发培训深圳沈阳网站建设制作公司
  • 网站上做旅游卖家要学什么我的百度账号
  • html5网站源码php百度知识营销
  • 动态网站开发心得建网站的公司排名
  • 昆明做网站建设的公司哪家好怎么设计一个网页
  • 关键字查询我的网站怎么做重庆网站建设哪家好
  • 上海网站开发怎么做专业网页设计和网站制作公司
  • 苏州网站定制公司企业qq
  • 优化网站排名提高建站官网
  • 在网站上做承诺书济宁百度推广电话
  • 凡科论坛网站制作seo的主要内容
  • 帮人做项目的网站电商网页制作教程
  • 网站建商城营销网站制作
  • 公司网站开发建设费用百度电话客服24小时