【问题标题】:How to show first page of the route without page number on Next JS如何在 Next JS 上显示没有页码的路由的第一页
【发布时间】:2020-12-24 13:24:08
【问题描述】:

我一直在尝试创建一个包含数字分页的博客页面。

我的页面文件夹如下:

src
-pages
--blog
---[id].tsx

我可以使用 Next 提供的 getStaticPaths 函数渲染所有静态页面。

问题是我想将首页显示为 /blog 而不是 /blog/1

当有/blog/1内容时,如何推送路由/blog

【问题讨论】:

    标签: javascript reactjs next.js


    【解决方案1】:

    可能有 (1) 客户端路由和 (2) 服务器端路由

    创建新页面blog/index.tsx

    src
    -pages
    --blog
    ---[id].tsx
    ---index.tsx
    

    并在 index.tsx 中重定向到 /blog/1(客户端路由)

    import { useEffect } from 'react'
    import { useRouter } from 'next/router'
    
    export default function Blog() {
    
      useEffect(() => {
        router.push('/blog/1')
      }, [])
    
      return <p>Redirecting...</p>
    }
    

    服务器端路由

    import { useEffect } from 'react'
    import { useRouter } from 'next/router'
    
    export default function Blog() {
    
      useEffect(() => {
        router.push('/blog/1')
      }, [])
    
      return <p>Redirecting...</p>
    }
    
    export const getServerSideProps = ({ req, res }) => {
        res.writeHead(302, { Location: "/blog/1" });
        res.end();
        return {
            props: {}
        }
    }
    

    【讨论】:

    • 试过这种方法但不喜欢它。 1 - 重定向需要时间 2 - URL 仍然显示 /blog/1,这是不需要的。
    猜你喜欢
    • 2020-11-18
    • 2020-11-21
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-26
    • 1970-01-01
    相关资源
    最近更新 更多