大家好,我是Kason。React源代码在实现不同的模块时使用了多种算法和数据结构(例如,调度程序使用一个小的顶堆)。今天我们就来聊聊数据缓存相关的LRU算法。内容包括四个方面:介绍一个React的特性这个特性和LRU算法的关系LRU算法的原理React中LRU的实现可以说是从入门到实现都涵盖了,所以内容非常多,建议喜欢的慢慢收藏。一切的起点:Suspense在React16.6中引入了Suspense和React.lazy来拆分组件代码。对于如下代码:importAfrom'./A';importBfrom'./B';functionApp(){return(
)}被打包工具打包后,生成:块。js(包括A、B、App组件代码)首屏渲染,如果不需要组件B,可以拆分出它的代码。只需进行以下修改://beforeimportBfrom'./B';//afterconstB=React.lazy(()=>import('./B'));被打包工具打包后生成:chunk.js(包含A,App组件代码)b.js(包含B组件代码)这样首屏时会以jsonp的形式请求B组件代码渲染,然后在请求返回后渲染。为了在B请求返回前显示占位符,需要使用Suspense://before,省略其余代码return()//after,省略其余代码在B请求返回之前呈现。.