【问题标题】:Does Next.js generates one page per every post in the following configuration?Next.js 是否在以下配置中为每个帖子生成一个页面?
【发布时间】:2021-03-12 20:02:34
【问题描述】:

我正在使用 next/router 动态呈现帖子列表。此列表包含每个帖子的索引、路径和标题:

export const items = [

    {
      id: "0",
      path: 'Post_Alpha',
      title: "Title example 0",
    },

    {
      id: "1",
      path: 'Post_Beta',
      title: "Title example 1",

    },

我可以通过它在数组中的索引来访问测试版:

    import {items} from '../posts/data'

function Posts() {
    const router = useRouter()
    const {post} = router.query 
    const postIndex = items.map(function(e) { return e.path; }).indexOf(post)
    const post = items[courseIndex]

    return (
    <h2>
        {post.title}
    </h2>
  )
}

export default Posts

我想知道 Next.js 是为每篇文章创建一个页面,还是只创建一个动态填充的页面。我有一个使用&lt;Link /&gt; from 'next/link' 访问每个帖子的链接列表。另外,如何查看 Next.js 生成的页面,比如站点的 sitemap.xml?

【问题讨论】:

    标签: javascript next.js


    【解决方案1】:

    我认为不会。

    我认为只有在您使用 getStaticPropsgetServerSideProps 时才会发生这种情况。在您的情况下,您的页面不具备使用 Next.js 作为服务的功能,例如良好的 SEO。您只需使用 client-side 抓取,它没有利用 Next.js 的任何好处。您还可以检查 useSWR() 钩子以获取客户端上的数据。

    编辑

    如果您的数据不是很多并且不经常更新,我相信您应该遵循 Next.js 文档中的this 示例。仅当您满足上述两个要求时才使用,因为数据是静态的并且将在构建时生成。

    【讨论】:

    • 使用 process.cwd() 代替 userSWR() 会起作用吗?
    • process.cwd() 不用于缓存和 SEO,它是供您在 build 项目时访问目录中的文件,其中 Next.js i> 生成一个新目录并添加新文件。我希望我回答了你的评论
    • 所以我应该像这样获取数据:const { data, error } = useSWR("path/to/client data file", fetcher),对吧?另外,我应该获取 .js 文件还是 .json?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-06
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-01
    相关资源
    最近更新 更多