next.js 动态路由配置

7 min read

动态路由 正常的应用,都有动态路由,next中讨巧使用文件命名的方式来支持。

./pages/post/create.js --> /post/create
./pages/post/[pid].js --> /post/1 , /post/abc 等,但是不会匹配 /post/create
./pages/post/[...slug].js --> /post/1/2, /post/a/b/c等,但是不会匹配/post/create , /post/abc

动态参数可以通过req.query对象中获取({ pid }, { slug: [ 'a', 'b' ] }),在页面中可以通过router hook获取:

import { useRouter } from 'next/router';

function About() {
  const router = useRouter();
  const { bID, pID } = router.query
  return <div>About</div>
}