next/Link 사용하기
1.pages의 하위 디렉토리가 아래와 같을때
pages/index.js
pages/about.js
pages/blog/[slug].js
2. import 후
import Link from 'next/link'
3. 아래의 형태로 사용
<Link href="/">
<a>Home</a>
</Link>
<Link href="/about">
<a>About Us</a>
</Link>
<Link href="/blog/hello-world">
<a>Blog Post</a>
</Link>
Link의 props정리
필수값
1. href
이동할 경로 혹은 URL
<Link href="이동할 경로 혹은 URL">
...
</Link>
옵션값
1. as
이동할 경로 혹은 URL
<Link href="/" as="브라우저의 주소창에 표시될 URL">
...
</Link>
2. passHref
기본값 : false
next Link에서 하위 컴포넌트로 href 속성을 전달해주는 역할
<Link href={{ pathname: "post", query: { id: post_id } }} passHref>
<ChildATag>A태그</ChildATag> // 자식태그가 styled component a태그인 경우
</Link>
참고 : https://f-dever-error-log.tistory.com/56
위처럼 passHref를 넣어서 작성해야 자식 컴포넌트의 a태그에 href가 전달된다고 한다.
3. prefetch
기본값 : true
뷰포트 내의 Link 태그 데이터만 미리 받아온다.
- 파일의 전체 Link태그가 아닌 "뷰포트 내"인것을 참고,
전체 페이지가 아니라 스크롤 안의 보이는 요소들을 기준으로 한다.
- prefetch=false 설정을 통해 끌 수 있지만, 그래도 마우스 오버 시에는 작동한다.
- production 모드에서만 실행된다.
따라서 개발모드로는 확인할 수 없고 production 모드로 돌린 후 네트워크 탭을 통해 확인이 가능
4. replace
기본값 : false
push대신 replace하는 속성
뒤로가기 history에 쌓이지 않고 대체된다
<Link href="/" replace>
...
</Link>
5. scroll
기본값 : true
화면 이동시 페이지 상단으로 스크롤
스크롤 자동으로 상단으로 올라가는 부분 제거
<Link href="/" scroll={false}>
...
</Link>
6. shallow
기본값 : false
서버단에서 실행되는 메소드들을 재실행하지 않고 이동할지 여부
getStaticProps, getServerSideProps, getInitialProps를 실행시키지 않고 현재 URL을 업데이트
> 리렌더링이 일어나지 않는다고 함
<Link href="/" shallow={true}>
...
</Link>
✔️ 참고
'Next.js' 카테고리의 다른 글
[Next.js] Next.js app router error page 무한 새로고침 에러 (2) | 2023.06.29 |
---|---|
[Next.js] monorepo환경에서 next-seo, next-sitemap, robot 설정 | 사용하기 (0) | 2023.04.02 |
[Next.js] Hydrate 간단하게 정리 (0) | 2022.08.27 |
[Next.js] next/router 사용하기 (공식문서 내용 정리) (0) | 2022.05.15 |
[Next.js] router.query가 빈값일때! ( with.useEffect ) (0) | 2022.03.30 |