https://nextjs.org/learn/foundations/about-nextjs/what-is-nextjs
Learn | Next.js
Production grade React applications that scale. The world’s leading companies use Next.js by Vercel to build pre-rendered applications, static websites, and more.
nextjs.org
공식문서랑 노마드코더 참고해서 작성하였음
user interface를 구축하기 위한 JavaScript 라이브러리
여기서 user interface란 사용자가 화면에서 보고 상호 작용하는 요소를 의미함
라이브러리에 의하면 React가 UI를 빌드하는데 유용한 기능을 제공하지만
애플리케이션에서 해당 기능을 사용할 위치는 개발자에게 맡긴다
웹 애플리케이션을 만들기 위한 빌딩 블록을 제공하는 React 프레임워크
프레임워크는 Next.js가 React에 필요한 도구 및 구성을 처리하고 애플리케이션에 대한 추가 구조, 기능 및 최적화를 제공한다
라이브러리와 프레임워크의 주요 차이점은 "Inversion of Control" 즉 통제의 역전이다
라이브러리에서 메서드를 호출하면 사용자가 제어할 수 있지만
프레임워크에서는 제어가 역전되어 프레임워크가 사용자를 호출한다
라이브러리 | 프레임워크 |
사용자가 파일 이름이나 구조 등을 정하고 모든 결정을 내림 | 파일 이름이나 구조 등을 정해진 규칙에 따라 만들고 따름 |
Next.js 프로젝트 초기화
npx create-next-app@latest
// 이후에 프로젝트 이름 물어봄
// typescript로 작성해주고 싶으면 이 뒤에 --typescript를 적어줌
명령어 실행 후 다음 파일들이 생기는 데 이것들이 하는 역할은 다음과 같다.
|-- pages
|-- public
|-- styles
|-- .eslintrc.json
|-- next.config.js
|-- package.json
npm run dev
위 명령어 입력 후 http://localhost:3000가 자동으로 열림
next에선 따로 경로 설정을 해줄 필요 없이 pages 폴더 안에 있는 파일 명에 따라 route가 결정된다.
page/about.js 생성 ->
localhost:3000/about 에 about.js렌더링
다만 예외사항으로, index.js의 경우에는
앱이 시작하는 파일이라고 보면 된다.
즉 localhost:3000 그 자체다 뒤에 /index 로 붙이면 안된다.
import react from "react"를 적어줄 필요는 없다
다만 hooks(useState,useEffect, lifecycle method 등)을 사용할 경우에는 import 가 필요하다
[NEXT] Dynamic Routes (0) | 2023.01.19 |
---|---|
[NEXT] getServerSideProps로 데이터 fetch (0) | 2023.01.19 |
[NEXT] rewrites를 이용한 API key 숨기기(redirects 포함) (0) | 2023.01.16 |
[NEXT] 웹페이지 제목 나타내기/ 이미지 설정하기 (0) | 2023.01.16 |
[NEXT] Next.js에 스타일 적용하기 (0) | 2023.01.11 |