SSR应用中的状态管理库有什么用?[已关闭]

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

我使用NextJS作为库来服务一个SSR应用程序。在文档和示例中,我读到了很多关于使用状态管理库的内容,我习惯于在客户端渲染的应用中使用状态管理库,但我并没有看到在SSR应用中的附加价值。我习惯于在客户端渲染的应用程序中使用状态管理库,但我并没有真正看到SSR应用程序的附加价值。在客户端,我会用它来存储一些设置,比如配置文件、UI状态,也许还有一些API调用的结果。每当我导航时,这个存储都会保持不变。 然而,在SSR应用程序中,当导航发生时,会有一个新的请求进来,所有的JavaScript会被再次加载,对吗?这意味着我的商店将再次从零开始建立。

reactjs next.js
1个回答
1
投票

我把我这一年来使用Next(SPA、SSR和SSG)的一点经验告诉大家。

我认为没有一个规则适合所有的人,但它取决于不同的因素。我會試著從我的經驗中總結一下。

SSR

  1. 您的内容每天都在变化,您必须尽快将其上线(也许是SEO原因)。
  2. 跑不了 yarn build 每一个内容的变化或它是太长的开发管理一个自动系统(CI/CD),代表您进行部署。
  3. 对你来说,管理一台服务器(或lambdas)是可以的,而且你知道成本和可扩展性的潜在问题(例如,在某些时间内的高流量峰值)。
  4. 您出于其他原因需要服务器的强大功能:例如,需要根据用户设备定位用户代理来更改内容。

SSG

  1. 你是那个对你的申请进行修改的人(或者至少是那个批准他们的人),所以你有能力运行 yarn build 每当有变化的时候。
  2. 你不希望管理一个服务器,只用静态存储服务(s3,blob存储等)来工作,为了简单起见,你还需要一个CDN来促进你的应用下载。
  3. 你可以创建一个自动系统(CICD),每一个变化(插入,更新,提交,什么的)它都会运行你的部署命令。
  4. 对你来说,时间上是可以的,生成(最坏的情况下)所有的页面,然后由于一些大的变化而再次上传。

当然,这里我并没有提到所有的。e2e 测试流的原因,它可能会改变的情况下,以及动态部分,如javascript,可能会组成你的应用程序,并可能不是静态生成的内容(广告,分析,登录等)或CSS的一部分。

我想还有更多的原因我现在还没有看到,但希望至少能给你的选择提供一些想法和反馈。

欢呼

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