next.js getStaticPaths 列出每个路径还是仅列出附近的路径?

2023-11-26

使用 Next.js 导出静态页面,我在动态路由中得到了这样的结果pages/[id].js我放入的任何路径getStaticPaths将创建部分。凉爽的。

列出每一页是否更好:

getStaticPaths(){
  return (
    // some function to spit out a list of every possible page
  )
}

or

getStaticPaths(){
  return (
    // some function to return the next and previous page
  )
}

或者这有什么关系吗?


对于动态路由示例posts/[id].js getStaticPaths需要定义一个路径列表,以便Next.js在构建时预渲染所有指定的路径。

功能getStaticPaths需要返回一个对象pathsproperty 是一个包含路由参数和属性的数组fallback这是真的还是假的。如果fallback对于未从函数返回的任何路径设置为 falsegetStaticPaths不会被预渲染,因此导致404 page.

如果您提前知道需要渲染的所有路径,则可以设置fallback为 false。这是一个例子..

 // getStaticPaths for /category/[slug] where slug can only be -
 // either 'category-slug-1', 'category-slug-2' or 'category-slug-3'

 export const getStaticPaths = async () => {

   return {
      paths: [
        { params: { slug: 'category-slug-1'} },
        { params: { slug: 'category-slug-2'} },
        { params: { slug: 'category-slug-3'} }
       ],
     fallback: false // fallback is set to false because we already know the slugs ahead of time
   }   

 }

假设你有一条路线/posts/[id].js来自数据库,每天都会创建新帖子。在这种情况下,您可以返回已经存在的路径来预渲染一些页面。并设置fallback to true根据请求,Next.js 将提供页面的后备版本,而不是显示404未从函数返回的路径的页面getStaticPaths,然后在后台,nextjs会调用getStaticProps获取请求的路径并将数据作为 JSON 提供,该数据将用于在浏览器中呈现页面。

这是一个例子,


export const getStaticPaths = async () => {
   const posts = await // your database query or fetch to remote API
   
   // generate the paths
   const paths = posts.map(post => ({ 
        params: { id: post.id } // keep in mind if post.id is a number you need to stringify post.id
      })
   );

   return {
      paths,
      fallback: true
   }   

 }

附: - 使用时fallback set to true你需要在你的中渲染某种后备组件NextPage否则当你尝试从 props 访问数据时,它会抛出类似的错误cannot read property ...x of undefined

你可以像这样渲染后备,

// in your page component
import {useRouter} from 'next/router';

const router = useRouter();

if (router.isFallback) {
   return <div>loading...</div>
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

next.js getStaticPaths 列出每个路径还是仅列出附近的路径? 的相关文章

  • C# 静态类型不能用作参数

    public static void SendEmail String from String To String Subject String HTML String AttachmentPath null String Attachme
  • 在静态类中存储连接 (ASP.NET)

    由于我使用的是 Postgresql 并且无法使用 LINQ to SQL 因此我编写了自己的包装器类 这是学生课程的一部分 public class Student User private static NpgsqlConnection
  • 设置状态时重新渲染过多 - useSWR

    我在用useSWR https swr vercel app docs data fetching获取数据 然后使用数据 我想通过使用reduce 获得总计 如果我 console log 输出该值 它工作正常 但一旦我尝试使用该值设置状态
  • 关于 C99 函数参数中数组大小“保证”功能的实际优势?

    C99 引入了一种新的函数参数表示法 其中static关键字可用于指定参数至少有 N 个元素 6 7 6 3 函数声明符 p7 https port70 net 7Ensz c c11 n1570 html 6 7 6 3p7 将参数声明为
  • 为什么java(>=7版本)不支持运行没有main方法的程序? [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 class WithoutMain static System out println Without main class Sy
  • Java加减法与金钱

    我正在尝试对美元和美分进行加法和减法 但在超过 100 美分和低于 0 美分时遇到困难 我的代码可以很好地添加任何内容 直到我需要将 100 美分转换为 1 美元 我无法将我的话转化为代码 但我知道需要做什么才能将美分转换成美元 仅供参考
  • 在 Android 中将应用程序上下文保存到静态变量是否安全?

    我知道在 Android 上使用静态变量是相当危险的 特别是当您将它们引用到活动时 但是 如果我有一个扩展 Application 的类 我们称此类为 App 引用此类的实例是否安全 如果是这样 任何其他类对应用程序上下文进行任何类型的引用
  • Font-Awesome 添加了 aria-hidden 属性,可防止图标出现在浏览器中 [SSR]

    我想在我的 Next js 项目中包含一些 Font Awesome 图标 我已经添加了需要的 标记到我的头部 然后 i i 标记到我的渲染方法 如果我在浏览器中打开该网站 它会向我发出以下控制台警告 index js 1 警告 来自服务器
  • Next.JS 中止获取路由组件:“/login”

    我正在开发一个用于每页身份验证的 useUser Hook 我已经正常实现了 useUser 挂钩 因此重定向工作正常 但我收到上述错误 中止获取路由组件 login 我该如何修复 useUserHook 来解 决它 useUser tsx
  • 退出动画在下一个 js 帧器运动中不起作用?

    我在我的应用程序中使用 next js 在我的动画中使用成帧器运动 我可以设置介绍动画 但退出动画根本不起作用 我已将代码包装在动画效果下 但它没有执行任何操作 我在这里缺少什么 下面是我的示例代码
  • 等待在 nextjs 页面中加载 paypal 脚本

    我有这段代码应该呈现 PayPal 按钮 我在 componentDidMount 方法中加载 PayPal 按钮 componentDidMount paypal Buttons createOrder data actions gt r
  • 下一个验证 |当用户对象有太多项目时,会话请求没有数据

    我会尽力为我解释我的问题 我使用 Strapi 作为后端 使用 Nextjs 作为前端 对于身份验证 我使用 NextAuth nextauth js const options providers Providers Credential
  • 使用未命名命名空间而不是静态命名空间

    我可以假设在未命名命名空间中声明的对象相当于static namespace int x 1 static int x 2 FWIK 在这两种情况下 x将具有静态存储期限和内部链接 声明为的对象的所有规则也是如此static适用于未命名名称
  • 缓存静态 HTML 站点

    我通常使用 WordPress 但刚刚为客户完成了一个项目 该项目是一个静态 HTML 页面 由 8 个页面和每页约 2 个图像组成 使用 WordPress 我会使用 w3 总缓存 cloudflare photon 或通过 wp 引擎的
  • 是否可以在编译时/运行时生成标记字符串的全局列表?

    因此 我正在努力将我的 C 应用程序翻译成多种语言 我目前正在使用的是这样的 define TR x lookupTranslatedString currentLocale x wcout lt lt TR L This phrase i
  • Java:getInstance 与静态

    目的是什么getInstance 在Java中 在我的研究过程中我一直在读getInstance 有助于实现单例设计模式 根据我的理解 这意味着整个程序中只有一个实例 但我不能只使用静态吗 这不是静态的全部意义吗 如果我只有静态方法和字段
  • 如何覆盖 CSS 模块文件中的全局 CSS?

    让我们说在我的global css我有一个 Next js 项目的文件 flex display flex justify content center align items center height 100 我也有一个Layout j
  • 在静态类中使用常量

    我一直在努力一个开源项目 http code google com p noda time 上周末当我遇到一些让我困惑的代码 http code google com p noda time source browse src NodaTi
  • 错误找不到“pages”目录。请在项目根目录下创建一个”

    以前我的项目设置是 public next src pages components assets next config js 这工作正常 但我将结构更改为以下 public src client next config js jscon
  • VB.NET 中的静态方法实现

    我很困惑Static在 VB NET 中的实现 在 C 中 我们可以创建静态类和静态方法来为我们的应用程序编写实用方法 现在 VB NET 让我们创建Module代替静态类 如果我们在模块中创建一个方法 默认情况下它会变成静态的 但在我的应

随机推荐

  • 垂直合并 WPF DataGrid 中的单元格

    我想做一个DataGrid在 WPF 中 如果某些单元相似 它们将 合并在一起 Example Country Name Age Lisa 24 Danmark Per 32 Hans 33 Germany Mick 22 有什么方法可以使
  • NSPredicate 相当于 SQL 的 GROUP BY

    简化一下 名为卡片的表中有 3 列 id pack标题术语 id 是一列 0 100 之间的整数 packTitle 描述包的字符串 假设有 3 种包 PACK 1 PACK 2 PACK 3 term 101 个项目的不同未排序名称 通过
  • 如何在 wxpython 中调整我的工具提示?

    我试图添加一个工具提示来显示截断的 ObjectListView 的完整内容 直到发现它内置了这样的功能 我尝试使用 wx TipWindow wx PopupWindow 和 SuperToolTip 制作自己的工具提示 但没有一个看起来
  • 在所有子文件夹中创建空文件

    我需要提取存档并在存档中包含的每个文件夹中创建一个空文件 我试过这个 for folder in ls d1 do touch folder COMPLETE done 工作得非常完美 直到有人创建了一个名称中带有空格的文件夹 如何对名称中
  • 从 log4net 配置部分访问 appSettings 配置值

    有谁知道是否可以从同一文件中的 log4net 配置部分访问配置文件的 appSettings 部分的键 值 不使用代码 例如
  • 阅读之前和之后的观察结果

    我有一个像这样的数据集 sp是一个指标 datetime sp ddmmyy 10 30 00 N ddmmyy 10 31 00 N ddmmyy 10 32 00 Y ddmmyy 10 33 00 N ddmmyy 10 34 00
  • 将 .resx 中的图像存储为 byte[] 而不是位图

    有点傻 但是 有没有办法阻止 Visual Studio 处理 jpg文件在一个 resx作为位图 以便我可以访问byte 代替资源的属性 我只是想 byte myImage My Resources MyImage 或者 右键单击您的 r
  • 按值的子数组过滤对象数组

    这是我正在尝试做的事情 movies title a genres Romance Comedy title b genres Drama Comedy title c genres Action Adventure filters Rom
  • file_get_contents('php://input') 对于一个用户返回空,但对于其他用户则工作正常

    我的网络服务器有一个非常奇怪的问题 我的服务器为 file get contents php input 显示一个空字符串 但仅针对一个用户 它对我和其他一些人来说工作得很好 但一个特定用户无法使用网站上使用 POST 请求的任何内容 因为
  • 标头包含在多个 C 文件中

    我有两个文件 foo c 和 bar c 分别编译gcc c然后链接 这两个文件都需要 stdio h 和 stdlib h 标头 我必须将它们都包含在其中吗 不觉得有点多余吗 我应该使用 ifdef 吗 最好的做法是什么 每个C文件都是不
  • LDAP:错误代码 49 - 80090308:LdapErr:DSID-0C0903A9,注释:AcceptSecurityContext 错误,数据 52e,v1db1

    LDAP 错误代码 49 80090308 LdapErr DSID 0C0903A9 注释 AcceptSecurityContext 错误 数据 52e v1db1 我知道 52e 代码是用户名有效但密码无效的情况 我在 apache
  • Rails 3.2.8 Application.js 和 Application.css 未按预期工作

    当我尝试包括 application css 文件的内容是 This is a manifest file that ll be compiled into application css which will include all th
  • 为什么弹性物品不包裹?

    我正在尝试制作多行具有相同高度的正方形 每行 3 个 我为此编写了一些 HTML 和 CSS 但这些框都位于同一行 这是我到目前为止所拥有的 list wrapper display flex width 100 list wrapper
  • 自动 XSD 验证

    根据 lxml 文档 DTD 是根据解析文档的 DOCTYPE 自动检索的 您所要做的就是使用启用了 DTD 验证的解析器 http lxml de validation html validation at parse time 但是 如
  • 简单的日志文件格式

    我不确定是否有人问过 但我找不到这样的东西 我的程序使用一个简单的 txt 文件用于日志目的 它只是创建 打开一个文件并附加行 一段时间后 我开始记录相当多的活动 因此文件变得太大并且难以读取 我知道 这不是写的方式来做到这一点 但我只需要
  • 在网页中嵌入视频 (HTML)

    我想在网页中嵌入视频 我不想使用 Flash 因为它不适用于大量平台 我不愿意使用 HTML5 因为它还不太标准 它是标准 但大多数人没有支持它的浏览器 还有其他办法吗 或者我应该坚持使用 HTML5 和一个巨大的横幅告诉人们升级他们的浏览
  • ASP.NET ConnectionString AttachDbFilename=|数据目录|

    这是关于 ConnectionStrings ASP NET MVC 与 Visual Studio 2012 Ultimate 和 SQL Server Express 2012 的内容 在此继续本教程 http www asp net
  • 与伞式框架的链接

    我有 ios 应用程序 我想在其中实现 Flurry analytics 导入 Flurry 并 ling libsystem network dylib 后 我遇到了这个无法解决的问题 ld cannot link directly wi
  • Django/mod_wsgi OSError: [Errno 13] 权限被拒绝: 当 DEBUG = OFF 时为“静态”

    我在 Centos 6 2 服务器 运行 apache mysql php 上有一个 Django 1 4 应用程序 使用 mod wsgi 并将我的项目部署在虚拟环境中 该应用程序本身是我在托管服务上使用多年的应用程序 现在我正在自己的机
  • next.js getStaticPaths 列出每个路径还是仅列出附近的路径?

    使用 Next js 导出静态页面 我在动态路由中得到了这样的结果pages id js我放入的任何路径getStaticPaths将创建部分 凉爽的 列出每一页是否更好 getStaticPaths return some functio