✏️ Next.js

[Next.js] useRouter()

category
✏️ Next.js
date
thumbnail
slug
next-js-useRouter
author
status
Public
tags
summary
type
Post

client component에서만 사용 가능

‘use client’를 사용

useRouter()를 이용한 페이지 이동 방식

'use client';

import { useRouter } from 'next/navigation';

export default function Page() {
  const router = useRouter();

  return (
    <button type="button" onClick={() => router.push('/dashboard')}>
      Dashboard
    </button>
  );
}
router.push(’이동할 경로’)
⇒ 버튼 클릭 시 /dashboard 페이지로 이동
 
router.back()
  • 뒤로 가기
 
router.forward()
  • 앞으로 가기
 
router.refresh()
  • 바뀐 내용만 새로고침(브라우저의 새로고침과는 다름 - 전체 새로고침이 아니라 변동사항이 있는 일부분만 바꿔줌)
 
router.prefetch('경로')
  • 페이지 미리로드
  • <Link>에도 prefetch 기능이 내장되어 있다.
    • <Link>에서 prefetch 기능 끄는 방법
      • <Link> 안에 prefetch={false} 넣기
 
 

usePathname() - 현재 URL 출력

'use client';

import { usePathname } from 'next/navigation';

export default function ExampleClientComponent() {
  const pathname = usePathname();
  return <>Current pathname: {pathname}</>;
}
 

useSearchParams() - Search parameter 출력

'use client';

import { useSearchParams } from 'next/navigation';

export default function SearchBar() {
  const searchParams = useSearchParams();

  const search = searchParams.get('search');

  // URL -> `/dashboard?search=my-project`
  // `search` -> 'my-project'
  return (
    <>Search: {search}</>
  );
}
 
 

참고