1

我目前正在使用完全静态生成的 Next js,因为我想从 S3 + cloudfront 提供我的所有页面(不涉及服务器)。Next js 对此有很好的支持,除非涉及到动态页面(例如:/posts/:id)。解决此类场景的所有框架功能都涉及在构建时渲染所有可通过的页面(这是不可行的)或让服务器来渲染这些具有动态路由的页面(因此,使站点成为混合应用程序)。为了继续保持完全静止,我需要有办法解决这个问题。在创建反应应用程序中,可以使用反应路由器并在客户端解析路由,这正是我想要为动态路由做的。但据我所知,next js 和 react-router 不兼容,所以显然这不是一个选择。

4

1 回答 1

1

据我所知,我认为 SSG 上的动态路由是受支持的。动态路由特征独立于getServerSidePropsgetStaticProps。您可以使用next/router来获取您需要的参数并相应地呈现您的页面。

这是官方的例子。

import { useRouter } from 'next/router'

const Post = () => {
  const router = useRouter()
  const { pid } = router.query

  return <p>Post: {pid}</p>
}

export default Post

参考

https://nextjs.org/docs/routing/dynamic-routes

于 2021-04-07T17:58:31.167 回答