为什么不建议在getInitialProps
内使用_document.js
进行静态渲染?为什么可以破坏整个静态渲染?
例如,我有几种情况:
对于电子商务,我需要构建项目并使用getStaticProps
?
对于社交网络,我需要使用SSR和getServerSideProps
?
答案 0 :(得分:0)
来自nextjs docs
自定义文档还可以包含
getInitialProps
,用于表达异步服务器渲染数据要求。
在getInitialProps
中包含_document.js
不会导致您的应用程序崩溃,但是有一些警告
在客户端转换期间或静态优化页面时,不会调用文档的
getInitialProps
函数
这意味着,如果getInitialProps
中的_document.js
必须满足某些数据要求,则必须采取一些预防措施,因为{{1}中的函数getInitialProps
}也不会在客户端转换期间调用预渲染页面。
另一个警告是,当您尝试访问_document
内的ctx.req
时,预渲染页面将为getInitialProps
。
您可以根据数据需求为应用程序的每一页运行数据获取方法,即undefined
或getStaticProps
。如果应用程序需要客户端数据获取,您可能想看看swr或react-query