【问题标题】:does nextjs prerender all pages or only the first page?nextjs 是预渲染所有页面还是仅预渲染第一页?
【发布时间】:2022-09-23 15:12:18
【问题描述】:

我正在学习 nextjs 并在某些地方读到 nextjs 只预呈现第一页,而在其他一些地方他们说 nextjs 默认预呈现所有页面,所以我不明白哪个是真的

    标签: javascript next.js frontend server-side-rendering pre-rendering


    【解决方案1】:

    有不同的渲染策略。您可以通过在页面文件中添加方法来选择 NextJs 将为每个页面选择哪个。

    1. getStaticProps 将在构建时间预渲染 HTML 文件,您仍然可以使用 useEffect 来补充页面内容。

    2. getStaticPath 有点相同,但您可以为不同的路线预呈现不同的页面,或者如果提供了fallback: 'blocking',则可以根据需要在不存在的路径上呈现

    3. 您还可以采用 ISR(增量静态再生),一种介于静态/SSR 之间的页面,其中页面根据需要生成并缓存通过添加 revalidate 指定的时间量。

    4. getServerSideProps 将按需呈现页面

      这种渲染策略中的每一个都有优点和缺点,静态页面对于第一次渲染很有用,但可能需要另一个往返来水合内容。服务器渲染对 SEO 很有用,但会产生更高的服务器 CPU 使用率。

      好的是您可以根据您呈现的页面选择采用哪种策略。

      编辑:我没有添加它,但是这些方法的原理是您在其中获取数据/执行操作,并且它们的返回语句将被它们所在的页面用作参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-25
      • 1970-01-01
      • 2011-07-15
      相关资源
      最近更新 更多