Next.js에서 useRouter
훅
- 라우터 객체에 접근하여 현재 페이지의 경로, 쿼리 파라미터, 동적 라우팅 등과 관련된 정보를 얻고, 프로그래밍 방식으로 페이지 이동을 처리
- 주의!! App Router(
app/
)를 사용할 때useRouter
대신next/navigation
모듈에서 가져와야 함
주요 속성 및 메서드
- 속성
pathname
: 현재 페이지의 경로를 나타내는 문자열입니다.query
: 현재 경로의 쿼리 파라미터를 포함하는 객체입니다.asPath
: 쿼리 문자열을 포함한 브라우저에 표시되는 실제 경로입니다.route
: 매칭된 라우트 패턴을 나타내며, 동적 경로에서 유용isFallback
: 동적 경로에서getStaticPaths
와 함께 사용될 때, 페이지가 fallback 모드인지 여부를 나타내는 불리언 값
(ex.
/about
페이지에 있을 경우 "/about"
을 반환)(ex.
/post?pid=123
의 경우 { pid: '123' }
을 반환)(ex.
/post?pid=123
이면 "/post?pid=123"
을 반환)(ex.
/post/pid
와 같은 패턴을 반환)- 메서드
1.
push(url, as, options)
: 새로운 페이지로 이동. 브라우저의 히스토리에 새로운 항목이 추가. replace(url, as, options)
: 현재 페이지를 새로운 페이지로 교체. 브라우저 히스토리에 추가 xback()
: 브라우저 히스토리에서 이전 페이지로 이동prefetch(url)
: 지정된 경로에 대해 미리 데이터를 가져옴. 이는 클라이언트 사이드 네비게이션이 더 빠르게 이루어지도록 도와줌
동적 라우팅 예시
Next.js에서는 동적 라우팅을 지원하며,
useRouter
를 통해 동적 경로에 대한 정보를 쉽게 얻을 수 있습니다.위 코드는
/post/pid.js
파일에 위치하며, /post/123
과 같은 URL이 요청될 때 pid=123
값을 얻음cf.
next/navigation
redirect(url)
⇒ 훅(useRouter) 사용없이 리다이렉트
notFound()
⇒ 404페이지로 이동