在我的职业生涯中,我一直在使用React和Next.Js,最近我的一个大三学生问我,传统的网站是否会因为从服务器获取所有的HTML和CSS文件而重新加载;那么Next.js应用程序为什么不重新加载,即使它们也是预先呈现的呢?据我所知,在Next.js中,HTML页面也是在服务器上生成的,服务器将预先呈现的“HTML FILE”发送到浏览器。它不只是获取JSON数据。它获取了一个完整的HTML页面!!
我无法给予他任何答案,我也很好奇这件事到底是怎么发生的?如果你们能帮我澄清我的疑惑就太好了。
干杯。先谢了。
1条答案
按热度按时间bejyjqdl1#
你的想法是正确的。这取决于配置。现在我们可以谈论客户端渲染(CSR),服务器端渲染(SSR)或增量静态再生(ISR)。与v13的Next还有一个流功能。
但假设您正在询问有关服务器端呈现的问题,作为简化,基本上有两种类型的导航:
服务器端导航
客户端导航
Link
组件 Package 应用程序的超链接,这样一来,next就会控制你在客户端点击超链接时会发生什么。“有趣的事实"
其他渲染策略
CSR基本上就是plain react所做的事情(直到v18,服务器组件发布)。一堆JS包在浏览器中提供和运行。
ISR。在这种情况下,您的页面将在构建时生成,并作为静态内容提供。您的页面将被缓存,但您可以调整重新生成频率,以保持页面更新,避免整个应用重新构建/部署。
简化的服务器端呈现
Incremental Static Regeneration
希望有帮助,欢迎建议/更正!