如果必须拆分代码以提高性能,单页大型应用程序有什么意义?

What is the point of single page large applications if you have to split your code to improve performance?

我一直在阅读有关在 React 中延迟加载代码的内容。

With lazy loading, only the needed code will be loaded and doing so, your initial loading will be faster (because you will load much less code) and your overall speed will be much faster being on demand.

这是我的理解。 在单页应用程序中,整个页面最初都加载到浏览器上。我们使用像 webpack 这样的模块捆绑器将应用程序捆绑到一个页面中。一切都很好。 现在,如果应用程序很大,加载时间会增加。为了提高性能,我们可以将包分成单独的块,仅在需要时加载。 我的问题是,如果我们必须将页面分成块,它是否仍然是单页应用程序,因为浏览器必须在需要时向服务器请求这些块?感觉自己的知识有差距,不知道少了什么。

传统的 Web 应用程序过去常常使用回发到服务器以获取 HTML 以呈现新页面。然后 AJAX 出现了,应用程序能够异步呈现数据,从而确保用户不需要等待浏览器在回发时刷新以呈现新页面的时间。
现代 Javascript 库,如 angular、react 等,带来了单页应用程序 (SPA) 模型,该模型在单个页面内运行,无需浏览器在用户浏览网站时重新加载(即仅使用整个应用程序的单个容器页面,如 index.html)。即使使用代码拆分和延迟加载块,应用程序开发人员也可以确保用户获得愉快的体验,例如显示进度条或加载微调器(使用 React Suspense )。这比每次都等待页面重新加载的令人沮丧的体验要好得多。
Webpack 确保 chunkhash 仅针对源代码与先前构建相比发生更改的块进行更改。这有助于利用浏览器缓存,这样对块的请求就不需要每次都去服务器。希望这对您有所帮助!