使用像 Vue 这样的框架时对客户端渲染和服务器端渲染感到困惑

Confused about client side rendering and server side rendering when using a framework like Vue

在使用像 Vue 这样的框架时,我正在努力思考 SSR 与 CSR 的区别。既然你会使用 Vue Router 或类似的机制来导航,那么总是 是 CSR 吗?

当我想到 SSR 时,我会想到类似 Rails 的东西,其中服务器加载不同的路由并加载一个 ERB 文件以显示。有没有关于如何设置 SSR 和 vue 的示例?

Vue 主要是客户端框架 - 渲染由客户端浏览器中的 JS 运行 完成。您的应用(通常)只有一个 index.html。 html 文件几乎没有 html。它只加载大量的 JS...

这带来了(至少)2 个挑战:

  1. 爬虫(Google,还有 Twitter/FB 等共享)不执行 JS(或者如果他们执行,在您的网站被索引之前会有很大的“排队等待”惩罚) 所以他们看不到 任何内容。这是问题...
  2. 当正在加载的页面非常重要时(使用大量 components/components 渲染大量 HTML/components 需要来自 API 的一些额外数据),初始渲染仍然可以花费相当多的时间。这是糟糕的用户体验 - 页面加载,用户什么也看不到,一段时间后,内容出现...

为了解决这个问题,引入了SSR。第一页请求在服务器上预呈现,因此客户端(无论是爬虫还是用户)接收到对 index/see 有意义的东西,然后 Vue 接管控制权,其他一切再次只发生在客户端上......