关于静态/混合和SSR构建的一些NextJS问题



因此,我是NextJS的新手,在某种程度上,我了解getStaticProps、getServerSideProps等的用法……但是,用例中有一些细微差别,我不会去想。我希望在以下条件下,你能告诉我该使用哪种类型的一代。

产品页面:---大部分由产品ID检索,数据变化不大---存在一些";动态内容";但它是次要的。比如在某些条件下申请%的折扣?

哪个?

主页:---大部分都是静态的。。即评论/产品信息等。但是---有一个标题(显示在所有页面上(,如果用户登录,则会显示其名称。哪一个

我建议从基本层面理解getStaticPropsgetServerSideProps

听起来比实际情况更复杂。一个简单的规则是问问自己:

  1. 每次更改内容时,我是否希望在构建时生成特定页面?这意味着您的CI服务器构建页面,即您的Vercel、AWS Amplify、GitHub操作、GitLab Pipelines等会在每次内容更改时重新生成静态页面。使用CCD_ 3

  1. 我想让web服务器在每次浏览器请求时实时生成页面吗?使用CCD_ 4

这是在出色的性能(构建时间(和内容新鲜度(实时(之间进行权衡。

js的策略是将尽可能多的渲染转移到静态(构建时(,然后根据需要以智能的方式刷新相关内容。这就是revalidate选项的用武之地,产品页面就是这里的教科书用例。

我认为在这两个页面上都应该使用getStaticProps。在这种情况下1:您使用getStaticPaths按id导出所有生产页面。由于您的需求数据在产品页面上不会定期更改,您可以使用revalidate属性更新内容或重建项目。

此处的参考资料:https://nextjs.org/docs/basic-features/data-fetching

最新更新