일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 파이썬 장고
- 클래스 속성
- Python
- 파이썬
- Python Class
- Kotlin Class
- 파이썬 반복문
- 자바 기본타입
- git
- 넥스트js
- 좋은글
- 성공
- Kotlin 조건문
- 파이썬 제어문
- 장고 가상환경
- python Django
- django virtualenv
- Kotlin else if
- github
- 희망
- NextJs
- 도전
- 파이썬 클래스
- Kotlin 클래스 속성정의
- Variable declaration
- Kotlin 클래스
- Kotlin If
- activate 오류
- 강제 타입변환
- 다중조건문
Archives
- Today
- Total
키모스토리
#2. navigation, not-found(404) 본문
반응형
navigation
app/components 폴더 생성 후 navigation.tsx 파일 생성 후 아래 코드 코딩
'use client'
import Link from "next/link";
import { usePathname } from "next/navigation";
export default function Navigation() {
const path = usePathname();
console.log(path);
return (
<nav>
<ul>
<li>
<Link href="/">Home</Link> {path === "/" ? "💖" : ""}
</li>
<li>
<Link href="/about-us">About-us</Link> {path === "/about-us" ? "💖" : ""}
</li>
</ul>
</nav>
)
}
Link 컴포넌트
- import Link from "next/link";
- 페이지 이동 링크를 제공
- href 속성으로 링크 작성
usePathname()
- 현재 컴포넌트가 실행된 디렉토리 경로를 리턴함. 상단에 'use client'를 기재해야 이용이 가능
- 예제 코드에서 { path==='/' ? "현재경로일때" : " 아닐때 " } 부분을 이용하여 현재 주소를 표시
- 해당 파일은 page.tsx가 아니기 때문에 페이지 경로로 사용이 불가하고 그냥 component 로 동작됨
- 해당 컴포넌트를 네비게이션이 필요한 page.tsx에서 import하여 사용
- nextjs는 기본적으로 Server Side Render를 함.
'use client'
- 클라이언트 측에서 render된다는 의미가 아니라 클라이언트(frontend) 에서 hydrate 및 ineractive 된다는 의미
- 쉽게 생각하면 클라이언트 측에서 interactive하게 동작을 해야하는 코드가 추가가 되면 프레임워크에서
'use client'를 요구하게 된다. (자동으로 오류표시해줌)
- 해당 구문은 최상단에 작성 (import 구문 위)
/ 및 /about-us 의 page.tsx에 Navition 등록
import Navigation from "../components/navigation";
export default function Page(){
return (
<div>
<Navigation/>
<h1>Hello NextJs!!</h1>
</div>
)
}
404에러 페이지
/app/not-found.tsx 파일 생성
import Navigation from "../components/navigation";
export default function NotFound() {
return (
<div>
<Navigation/>
<h1>404 Not Found!!</h1>
</div>
)
}
- 404에러에 대응하는 페이지 생성 완료
- 404페이지에도 components 를 import하여 여러 작업을 할 수 있음
반응형
'Web Devlopment > NextJs' 카테고리의 다른 글
#6. Dynamic Routes (0) | 2025.03.27 |
---|---|
#5. metadata (0) | 2025.03.27 |
#4. layout (0) | 2025.03.27 |
#3. Next.js에서의 렌더링 방식 (0) | 2025.03.27 |
#1. Start Next.js (0) | 2025.03.27 |