Nuxt Vue 应用程序在初始水合后是否仍保持 SPA 模式? (机器人/爬行器怎么样?)

问题描述 投票:0回答:1

服务器端渲染(在 Nuxt 中,但我认为这是相当普遍的)已向我解释为:

使用 Nuxt SSR 时,您请求一个 URL,并收到返回一个 预渲染的 HTML 页面。加载完成后,浏览器启动 水化代码,此时静态页面就变成了 Vue SPA 应用。

我认为(也许是错误的),无论您现在处于 SPA 模式,如果您请求新页面(例如,您在“blog/ten-blue-things”上,您会按照

NuxtLink
转到“blog/ten- red-things”)浏览器向服务器发送此页面的新请求,并有效地破坏 SPA 模式?还是我错了?

我真的希望答案是它确实提出请求。在我的场景中,所有必需的数据很可能已经可用,如果没有,页面将进行 API 调用以获取缺少的任何内容,以动态呈现新页面“blog/ten-red-things”。在我的场景中,所有内容都已在客户端上,在第一次获取后获取预渲染页面是浪费的 (为了进一步澄清这一点,这是一个 PWA 离线优先应用程序;我正在添加 SSR 用于 SEO 和社交共享页).

但是,我也想知道,如果它确实不提出请求,那么(通常?)对于爬虫来说也成立吗?我宁愿他们对每个页面发出单独的请求,以便他们获得预渲染的 SEO 友好版本的 URL。如果爬虫启用了js,它可能会执行水化代码,然后呢?

  • 有人可以澄清这一点吗?
  • 如果我们使用 ISG(增量静态生成)代替 SRR,这对这个答案有影响吗?
vue.js nuxt.js single-page-application server-side-rendering nuxtjs3
1个回答
1
投票

它不会破坏 SPA 模式,一旦您进行 SSR 和补水,应用程序将保持 SPA 状态。您可以注意到,您没有任何“页面重新加载”,因为您正在执行 vue-router 客户端导航(与常规的

a
链接导航相反)。

应用程序的其余部分仍将正确进行 SSR,同时您不会返回到服务器(与 Next.js 相反)。

由于一些开发工具+尝试禁用 JS/检查源代码,有几种调试所有这些的方法。但是,爬虫会正确解析 SSR 内容。

PS:您还可以为给定页面选择您想要的渲染模式,因此如果您希望某些页面仅适用于 SPA,也可以。其余部分可以在水合后进行 SSR(在初始渲染期间)+ SPA。

SSR或ISG不会对爬虫/SEO产生任何影响。
当然,它的工作方式与 SSR 不同,但渲染部分在标记方面是相同的。只是“新鲜度”会有所不同。

© www.soinside.com 2019 - 2024. All rights reserved.