1. Next.js 설치와 개발환경 셋팅
1) 프로젝트 생성
(1) 프로젝트 생성 코드
npx create-next-app@latest
* Page가 메인 여기에다 코드 작성
(2) 프로젝트를 실행
npm run dev
page.js : 메인페이지
layout.js : 메인페이지 감싸는 용도의 페이지
2) 페이지 라우팅
(1) 방법
nextJs는 폴더 경로만 작성해줘도 링크 이동이 가능하다.
<div className="navbar">
<Link href="/">home</Link>
<Link href="/list">list페이지</Link>
</div>
(2) 라우팅을 하는 과정에서 의문점
import Link from "next/link";
이렇게 안뜨고 하단의 코드 처럼 import가 된다.
import Link from "@/node_modules/next/link";
이유 : 프로젝트 또는 빌드 도구에 의해 커스텀 경로 별칭을 설정한 경우에만 적용이 된다고 한다.
읭? 커스텀 경로 별칭...
해결방법 :
1. package.json 파일 내부에서 dependencies 또는 devDependencies 섹션에 "next" 패키지가 명시되어 있는지 확인
-> 일반적으로 "next"가 "dependencies" 섹션에 있는 경우 import Link from "next/link";와 같은 구문을 사용할 수 있단다. 근데 난 있는데도 안됨
그럼, 개발 환경 설정 또는 프로젝트 구조란다.
2. tsconfig.json 파일 확인
-> next" 패키지가 실제로 node_modules에 설치됨
개발 환경 설정 또는 프로젝트 구조 문제가 아님
{
"compilerOptions": {
"target": "es5",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"incremental": true,
"plugins": [
{
"name": "next"
}
],
"paths": {
"@/*": ["./*"]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
}
3. "next" 패키지를 "node_modules"에 설치
아이 ..참..! 혹시나 혹시나 했는데 ㅋ
(3) 오류
뭐가 잘못 된 건지 오류가 뜬다.
왜??
3) 반복되는 컴포넌트
layout.js 안에 넣기
Next.js는 실은 page.js를 보여줄 때
옆에 layout.js 파일이 있으면 layout.js 내용 안에 page.js 내용을 담아서 보여줍니다.
'프론트엔드로 가는 길 > NextJs' 카테고리의 다른 글
4. NextJs - 기본 내보내기(default export) (0) | 2023.10.24 |
---|---|
3. Next.js server component vs client component (0) | 2023.10.19 |
2. Next.js 이미지 최적화 (0) | 2023.10.19 |