软件的设计是为了服务理念。只有懂了设计理念,才能明白为了实现这样的理念需要如何架构。
所以,在我们深入源码架构之前,先来聊聊React理念。#React理念我们可以从官网 (opensnewwindow)看到React的理念:我们认为,React是用JavaScript构建快速响应的大型Web应用程序的首选方式。它在Facebook和Instagram上表现优秀。可见,关键是实现快速响应。那么制约快速响应的因素是什么呢?我们日常使用App,浏览网页时,有两类场景会制约快速响应:当遇到大计算量的操作或者设备性能不足使页面掉帧,导致卡顿。发送网络请求后,由于需要等待数据返回才能进一步操作导致不能快速响应。这两类场景可以概括为:CPU的瓶颈IO的瓶颈React是如何解决这两个瓶颈的呢?#CPU的瓶颈当项目变得庞大、组件数量繁多时,就容易遇到CPU的瓶颈。考虑如下Demo,我们向视图中渲染3000个li:functionApp(){constlen=3000;
return(
<ul>
{Array(len).fill(0).map((_,i)=><li>{i}</li>)}
</ul>
);
}
constrootEl=document.querySelector("#root");
ReactDOM.render(<App/>,rootEl);