当前,我的项目分为两部分,一部分在登录之前,另一部分在登录之后。
我想要实现的是,在登录需要快速且SEO友好之前,我应该选择预渲染还是SSR?
登录后,我们可以选择CSR(以便客户端能够等待页面加载)。
或者,我可以执行两个CSR,一个用于登录前(快速加载),一次客户端通过JWT令牌登录后,重定向到登录后CSR页面吗?
谢谢
答案 0 :(得分:2)
这取决于。
如果 SEO不相关-例如一个位于登录屏幕后面的应用程序- CSR很好,您只需要类似ReactJS之类的
如果您需要良好的SEO:
a)如果您可以预测内容(以在构建时生成内容),则需要SSG,并且应选择Gatsby或NextJS之类的东西
b)如果您无法预测内容/可能的请求,服务器将需要按需生成页面,因此您需要SSR,并且应选择类似NextJS的内容。
注意:NextJS允许您在同一项目中有选择地混合3种主要渲染形式。因此,如果您需要SEO,则是最佳选择。
答案 1 :(得分:0)
对于需要爬网的页面,很可能不选择CSR。然后,问题就变成您是选择预渲染还是SSR。答案就是取决于。
SEO内容是静态的还是取决于给定时间的其他后端API响应?
如果它是静态的,则预渲染对您来说就足够了。但是,如果它依赖于其他API,则内容可能会在运行时发生变化,因此您必须执行真正的SSR来适应这种情况。不过,SSR在服务器上会占用更多资源。
对于登录后部分,因为无论如何它都不应该被机器人爬网,所以可以对所有登录页面进行CSR。但是,仅CSR并不意味着您将具有显着更快的初始负载,还有很多因素需要考虑,例如HTML文档大小,网络行程延迟,您自己的服务所依赖的其他服务的响应时间等。 。 BUT ,以及使用服务工作者和应用程序外壳模型,与SSR相比,CSR几乎总是应该更快。我建议调查一下以提高CSR速度。 Link