NextJS에서는 pages 디렉토리가 바로 URL path, 즉 라우터가 된다. 원래 리액트에서는 그냥 react-router를 사용해서 navigate를 사용해야 했지만, nextJS는 각각의 디렉터리를 URL 삼아 들어가면 해당 디렉터리에 해당하는 페이지를 볼 수 있다.

그리고 각각의 페이지에 대해서 요청에 따라 동적으로 라우팅을 할 수 있다.

pages
ㄴ index.js
ㄴ user
	ㄴ [user]

useRouter

useRouter() 안의 query 메서드를 사용해서 받아온 query의 값을 변수로써 받아오면서 페이지를 만들 수 있다.

[user].js

import React from 'react'
import {useRouter} from 'next/router'

function User() {
  const router = useRouter();

  const {user} = router.query;

  return (
    <div>UserName : {user}</div>
  )
}

export default User;

Untitled

router.push(url)

클라이언트 측에서 라우트를 해 줄때 사용한다.

useRouter와 getStaticProps의 차이

useRouter를 사용하면 동적으로 해당 페이지에 대한 요청이 올 시 html을 만들어서 보내주는 SSR을 사용하는 방식이라면, getStaticProps는 미리 각각의 path에 대한 html을 만들어서 요청 시 미리 만든 파일을 보내주는 SSG 방식이다.