create-next-app 명령어를 사용하여 프로젝트를 생성해준다.
styles 폴더에는 스타일을 나타내는 파일을 저장한다
global.css
) _app.tsx에서만 사용 가능home.module.css
) 다른 컴포넌트 등에서 import 해서 사용 (다양하게 생성 가능)public 폴더에는 애플리케이션에서 사용되는 정적 파일들이 존재한다.
이때 create-react-app을 통해서 생성한 React 프로젝트의 public 폴더와 조금 다른 구성을 하고 있음
React 프로젝트의 public 폴더에는 index.html 파일이
존재했었지만 NexJS 프로젝트의 public 폴더에는 존재하지 않는다.
이는 NextJS가 pre-rendering을 위해서 자체적으로 모든 페이지에 대한 각각의 HTML파일을 만들기 때문
_app.tsx
_document.tsx
pages 폴더 내에는 페이지를 나타내는 "페이지 컴포넌트 파일"들을 저장한다.
pages 파일 구조를 기반으로 Next.js에서"라우팅 기능"을 제공하는 폴더이다.이때 pages 폴더에 작성된 각 "파일명이나 폴더명"이 "URL의 경로"로 사용된다.
예) pages/user.js =>domain.com/user
참고로 pages 폴더 내 작성된 각 파일들은 pre-rendering을 위해 각 HTML 문서가 미리 생성되며, 서버는 요청된 URL의 경로에 대응하는 미리 생성된 HTML 문서를 브라우저에게 응답으로 전달해준다.
next/head
import Head from 'next/head'
를 통해 넣어서 그 태그에 값을 넣으면 SEO가 잘 찾는 형태로 구현됨. 안에 태그에 넣으면 웹 페이지 탭 이름이 그 이름으로 구현됨.
next/link
import Link from 'next/link'
next/router
import { useRouter } from 'next/router'