728x90
반응형
Next.js에서 페이지 이동은 useRouter 를 이용하거나, next/link의 Link 컴포넌트를 이용한다.
이 두가지 방식의 차이점은 무엇일까?
const router = useRouter()
const onClick = () => {
router.push('...') // router.push
}
return (
<Link href='...'/> {/* Link 이용 */}
)
next/link 의 Link는 내부적으로 `<a/>` 태그를 생성한다.
따라서 useRouter push와 같은 동작을 하지만 더 직관적인 동작을 나타낼 수 있다.
여기서 말하는 직관적인 동작은 무엇일까?
위의 내 프로필을 클릭하면 나의 프로필 페이지로 이동은 하지만, 우 클릭시 이동과 관련된 액션을 찾아볼 수 없다.
하지만, 클릭하면 index페이지로 이동하는 헤더 우클릭시 링크와 관련된 내용을 찾아볼 수 있다.
이것이 직관적인 동작이 주는 차이점이다.
직관적인 동작을 보여주는 Link를 사용한다면 아래와 같은 장점이 있다.
1. SEO에 좋다. a 태그로 된 링크는 크롤링 봇이 이동할 수 있고 링크를 식별할 수 있다.
2. `data prefetch` 기능이 있다.
next/Link가 사용자의 화면에 보이면 해당 페이지의 번들파일을 서버에 요청해 미리 가져온다.
미리 가져온 번들을 통해 페이지 이동을 빠르게 할 수 있다.
해당내용은 커리어리의 Q&A 게시글을 참고로 작성한 게시글 입니다.
728x90
반응형
'🌳Frontend > react' 카테고리의 다른 글
Next.js 와 파이어베이스(Firebase) 연동하기 (0) | 2023.10.14 |
---|---|
Next.js 환경에서 CSS in JS Styled-Component의 치명적인 단점 (0) | 2023.10.14 |
가장 좋은 React Custom hook 구상하기 (0) | 2023.09.17 |
나같은 초짜 Typescript React 개발자들 용어 정리글 (0) | 2023.09.17 |
React에서 UI와 로직 분리하기 - Headless component (0) | 2023.09.17 |