如何解决NextJS,_app,SSG,getInitialProps和getStaticProps以及我应该如何坚持使用DRY?
我知道该主题不是新话题,我发现(并阅读了)一些讨论。我找不到的是仍然存在的问题的答案。
其他人如何解决_app.js中无法使用getStaticProps的问题?我无法使用 getInitialProps ,因为我想使用 SSG 。即使使用getInitialProps,有没有一种强制SSG的方法?还是我真的必须从每页的Headless CMS中获取所有数据?例如,由于我要构建页眉(包括导航)和页脚。目前,我看到的唯一选择是重复很多代码。
任何暗示都非常感谢,并感谢您阅读!
解决方法
Next.js 建议使用 getStaticProps 或 getServerSideProps 而不是 getInitialProps 以获得 Next.js 的最佳性能。
如果您使用 Next.js 9.3 或更新版本,我们建议您使用 getStaticProps 或 getServerSideProps 而不是 getInitialProps。
Next.js 推荐这样做的原因是 getInitialProps 禁用了 Automatic Static Optimization 并使用了 Server-side Rendering。
在 _app.js 中使用 getInitialProps 将禁用应用程序中所有页面的自动静态优化。此外,它会强制您在每次请求时生成所有页面,因为它们使用服务器端呈现,这将导致错误的 Time to First Byte (TTFB)。
我在 Github 上制作了一个带有现场演示和代码示例的 cheat sheet about Next.js page rendering,以帮助快速了解它的工作原理。这将帮助您根据您的用例选择正确的 Next.js 页面渲染策略。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。