본문 바로가기
React/Next.js

[Next.js] Next.js 란?

by 박헹구 2021. 12. 22.
반응형

 

🎈 Next.js란?

Next.js는 React의 SSR(Server-Side-Rendering)을 구현할 수 있게 도와주는 프레임워크로서

여전히 React를 기반으로 하기 때문에 React를 향상시키고 여전히 React코드를 사용한다.

Next.js는 페이지의 검색엔진을 위해서 타이틀이나 meta정보를 손쉽게 설정할 수 있는 장점 렌더링이 빠르다는 장점을 가지고 있다.

React자체에서도 SSR을 설계할 수 있지만 Next.js를 사용하면 보다 쉽게 구현이 가능하다.

Next는 한번에 렌더링이 되기 때문에 처음 로딩속도는 빠르지만 page 이동시에는 CSR(Client Side Rendering)이 더 빠르다. 기 이유는 CSR은 처음 로딩할 때 모든 파일을 내려받아 페이지를 이동할 때 해당페이지에서 필요한 데이터만불러서 사용하기 때문이다.

 

 

처음에 Next.js를 시작하기 위해서는 react-create-app이 아닌 아래와 같이 입력한다.

npx create-next-app
or
yarn create next-app

또한 실행할때도 나는 yarn을 쓰기 때문에 yarn start를 사용해서 열어주었지만

next.js는 yarn dev로 실행한다.

 

NextJS에는 사전 렌더링이 내장되어 있어 페이지를 결정할 수 있는 파일기반 라우팅 때문에 폴더가 가장 중요하다.
Next.js는 pages의 폴더에서 라우터의 기능을 수행하기 때문에 

구조를 잘 짜는 것이 중요하다. 

폴더안에 index는 해당부분이고 예를들어 www.hyemgu.com 일 경우

news의 폴더의 index 부분은

www,hyemgu.com/news 가 될 것이다.

또한 [] 대괄호를 사용한 부분은 우리가 리액트에서 사용하던 www.hyemgu.com/news/:newsId

와 같은 형식을 가지게 된다. 

 

[newsId].js에서는

import { useRouter } from 'next/router';

function DetailPage() {
  const router = useRouter();

 const newsId = router.query.newsId;

 //send a request to the backend API
  // to fetch the news item with newsId

  return<h1>The Detail Page </h1>
}

export default DetailPage;

를 사용하여 newsId를 router.query.newsId로 받아올 수 있다. 

반응형

'React > Next.js' 카테고리의 다른 글

Next.js + TypeScript 사용하기 !  (0) 2022.02.10
[Next.js] Next.js에서 Head 설정하는 방법  (0) 2022.01.17
useSWR 사용하기.  (0) 2022.01.17
[Next.js] Pre-Rendering  (0) 2022.01.12
[Next.js] 파일 기반 라우팅  (0) 2022.01.07

댓글