为什么在_document.js中使用getInitialProps导致Next.js应用程序崩溃?

时间:2020-06-14 11:32:40

标签: reactjs next.js

为什么不建议在getInitialProps内使用_document.js进行静态渲染?为什么可以破坏整个静态渲染?

例如,我有几种情况:

  1. 带有静态页面和一些动态页面的小型电子商务网站
  2. 受逻辑限制的社交网络,但与此同时,我想与搜索引擎共享一些有关我们在社交网络中拥有的个人资料和帖子的数据(内容正在LIVE基础上更新)。

对于电子商务,我需要构建项目并使用getStaticProps

对于社交网络,我需要使用SSR和getServerSideProps

1 个答案:

答案 0 :(得分:0)

来自nextjs docs

自定义文档还可以包含getInitialProps,用于表达异步服务器渲染数据要求

getInitialProps中包含_document.js不会导致您的应用程序崩溃,但是有一些警告

在客户端转换期间或静态优化页面时,不会调用文档的getInitialProps函数

这意味着,如果getInitialProps中的_document.js必须满足某些数据要求,则必须采取一些预防措施,因为{{1}中的函数getInitialProps }也不会在客户端转换期间调用预渲染页面。

另一个警告是,当您尝试访问_document内的ctx.req时,预渲染页面将为getInitialProps

您可以根据数据需求为应用程序的每一页运行数据获取方法,即undefinedgetStaticProps。如果应用程序需要客户端数据获取,您可能想看看swrreact-query