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

Next.js 关于静态/混合和SSR构建的一些NextJS问题,next.js,Next.js,所以,我是NextJS新手,我在某种程度上理解getStaticProps、getServerSideProps等的用法。。。但是,有一些用例的细微差别,我并没有对此绞尽脑汁。我希望在以下条件下,你能告诉我应该使用哪一代 产品页: --其中大部分由产品ID检索,数据变化不大 --有一些动态内容,但它的次要部分。比如说在一定条件下打%的折扣 哪个 主页: --大部分都是静态的。。ie评论/产品信息等。。但是 --有一个标题,显示在所有页面上,显示用户登录时的名称。 哪个?我认为在这两个页面上都应该

所以,我是NextJS新手,我在某种程度上理解getStaticProps、getServerSideProps等的用法。。。但是,有一些用例的细微差别,我并没有对此绞尽脑汁。我希望在以下条件下,你能告诉我应该使用哪一代

产品页: --其中大部分由产品ID检索,数据变化不大 --有一些动态内容,但它的次要部分。比如说在一定条件下打%的折扣

哪个

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

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


这里的参考资料:

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

这里的参考资料:

我建议在基础层面上理解getStaticProps与getServerSideProps

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

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

是否希望web服务器在每次浏览器请求时实时生成页面?使用getServerSideProps。 这是在高性能构建时间和实时内容新鲜度之间的权衡

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

我建议在基本层面上理解getStaticProps与getServerSideProps

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

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

是否希望web服务器在每次浏览器请求时实时生成页面?使用getServerSideProps。 这是在高性能构建时间和实时内容新鲜度之间的权衡


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

在生产页面上,您也使用getServerSideProps,性能与getStaticProps muchon生产页面相同,也使用getServerSideProps,性能与getStaticProps muchI相同,但如果90%的页面,让我们说它是静态的。虽然变化不大,但仍有一些促销品需要升级或升级。。。在useEffect中使用getStaticProps和一些API来饱和动态内容是否明智?如果需要,请使用revalidate确保我们获得更新?您可以通过客户端上的XHR将促销作为小部件呈现-前提是API是公共的,否则您需要使用API路由或任何其他代理/网关对其进行屏蔽。如果你用一个像样的加载器来处理用户体验,它就可以工作。在我看来,重新验证选项是一个单独的策略,因为它是SSR/SSG的组合。我认为我们将来会有更多的选择,看看最近发布的服务器端组件,但现在您可能需要在XHR客户端、重新验证或完整SSR之间进行选择。这取决于用例中各种元素的权重——用户体验、搜索引擎优化、性能——我明白了,但如果90%的页面是静态的呢。虽然变化不大,但仍有一些促销品需要升级或升级。。。在useEffect中使用getStaticProps和一些API来饱和动态内容是否明智?如果需要,请使用revalidate确保我们获得更新?您可以通过客户端上的XHR将促销作为小部件呈现-前提是API是公共的,否则您需要使用API路由或任何其他代理/网关对其进行屏蔽。如果你用一个像样的加载器来处理用户体验,它就可以工作。在我看来,重新验证选项是一个单独的策略,因为它是SSR/SSG的组合。我认为我们将来会有更多的选择,看看最近发布的服务器端组件,但是f 或者现在您可能需要在XHR客户端、重新验证或完整SSR之间进行选择。取决于用例中各种元素的权重UX、SEO和性能