对 Gatsby 页面加载网络请求的说明

Clarification on Gatsby page load network request

我正在学习 Gatsby 是如何工作的,并且有一个包含 2 个页面的网站,两个页面彼此都有 hyperlinks。

由于 gatsby 使用 javascript 包将网站编译为静态页面,我希望 html link 单击事件触发页面请求到服务器以加载 second 页。但是,我没有看到这样的要求。该网站的行为类似于从 first 页面加载的单页应用程序。 Link 单击不会导致 second 页面的网络页面请求。同时,我可以看到服务器正确响应了对 second 页面的请求。在这种情况下,second 页面被加载并且通过 link 单击导航到 first 页面也不会引起 HTTP 请求。

是的,Gatsby 是单页网站,也是多页网站。 Gatsby 将各个页面预渲染为 html 文件,并将相应的 React 代码编译成包。

在冷启动时,任何给定页面都会像其他任何静态页面一样加载到浏览器中,速度快且对 SEO 友好。加载静态页面后,反应代码将被引导并有效地运行节目('a la' 单页应用程序样式)。很聪明吧?但是,只从服务器获取需要的 js 包(有时为了速度也会预先获取)。

Gatsby 实际上只不过是一个聪明的服务器渲染 html 理解内容类型的反应应用程序。