在NuxtJS中进行初始加载后,SSR如何工作?

时间:2019-02-12 14:42:50

标签: javascript nuxt.js ssr

在纯VueJS应用程序中,我们有一个<div id="app"></div>容器,其中VueJS放置了所有需要渲染的内容。

因此,如果我们在浏览器中打开源代码,我们将看不到任何呈现的内容。

因此,如果我们使用SSR的Nuxt功能,则在第一次初始加载时,所有组件都将呈现在服务器上,此外,我们还会看到一些HTML内容。

但是,当我们在“ spa模式”下(使用<nuxt-link>工作)浏览网站时会发生什么。当我单击链接时,该站点没有完全重新加载。我看不到chrome开发工具中的任何请求,非XHR则没有其他请求。并且即使我们从后端获得了完全呈现的内容,也像<div id="app"></div>"一样通过javascript将其插入,因为我们不会重新加载页面。

但是我可以在源代码中看到一切都可以满足SEO的需要:导航到其他一些路线后,所有html都存在于源代码中。但是这是怎么发生的?

1 个答案:

答案 0 :(得分:2)

该过程称为水化。

请注意,在SPA模式下,所有内容都会呈现在客户端上。使用SSR时,第一个渲染发生在服务器上,因此您可以在源代码中看到HTML。

一旦在客户端上,VueJS就会“滋润”它的状态,这意味着它将把App的状态设置为来自服务器的状态。如果您随后使用<nuxt-link>,它将以SPA模式导航。另一方面,不会使用普通的<a>

这对于所有用例都是完美的,因为Google和其他搜索引擎未启用Java脚本,它们只会对您的所有链接发出全新的请求,但您的用户将拥有SPA页面的感觉。