【发布时间】:2022-09-23 15:12:18
【问题描述】:
我正在学习 nextjs 并在某些地方读到 nextjs 只预呈现第一页,而在其他一些地方他们说 nextjs 默认预呈现所有页面,所以我不明白哪个是真的
标签: javascript next.js frontend server-side-rendering pre-rendering
我正在学习 nextjs 并在某些地方读到 nextjs 只预呈现第一页,而在其他一些地方他们说 nextjs 默认预呈现所有页面,所以我不明白哪个是真的
标签: javascript next.js frontend server-side-rendering pre-rendering
有不同的渲染策略。您可以通过在页面文件中添加方法来选择 NextJs 将为每个页面选择哪个。
getStaticProps 将在构建时间预渲染 HTML 文件,您仍然可以使用 useEffect 来补充页面内容。
getStaticPath 有点相同,但您可以为不同的路线预呈现不同的页面,或者如果提供了fallback: 'blocking',则可以根据需要在不存在的路径上呈现
您还可以采用 ISR(增量静态再生),一种介于静态/SSR 之间的页面,其中页面根据需要生成并缓存通过添加 revalidate 指定的时间量。
getServerSideProps 将按需呈现页面
这种渲染策略中的每一个都有优点和缺点,静态页面对于第一次渲染很有用,但可能需要另一个往返来水合内容。服务器渲染对 SEO 很有用,但会产生更高的服务器 CPU 使用率。
好的是您可以根据您呈现的页面选择采用哪种策略。
编辑:我没有添加它,但是这些方法的原理是您在其中获取数据/执行操作,并且它们的返回语句将被它们所在的页面用作参数。
【讨论】: