[Next.js] Next.js 버전 별 특징(13 이전, 13, 14)

2024. 7. 20. 13:12·개발 지식/Next.js

Routing

  • Page Router → App Router이전 버전까지는 pages/ 디렉토리에 파일들을 생성하며 페이지 구성을 함
  • 13버전 부터는 app/ 디렉토리를 제공
  • 13버전이 등장하며 가장 큰 변화가 생긴 부분 중 하나는 페이지 라우팅 방식
페이지 라우팅 방식
  • 13 이전 버전(Pages Router)
└── src/
    └── pages/
        ├── _app.tsx
        ├── _document.tsx
        └── index.tsx
└── src/
    ├── layouts/
    │   └── testLayout.tsx
    └── pages/
        ├── _app.tsx
        ├── _document.tsx
        ├── index.tsx
        └── test.tsx
└── src/
    ├── components/
    │   └── test/
    │       └── testHeader.tsx
    ├── layouts/
    │   └── testLayout.tsx
    └── pages/
        ├── _app.tsx
        ├── _documnet.tsx
        ├── index.tsx
        └── test.tsx
└── src/
    ├── components/
    │   └── ...
    ├── layouts/
    │   ├── aTestLayout.tsx
    │   ├── bTestLayout.tsx
    │   └── cTestLayout.tsx
    └── pages/
        ├── test/
        │   ├── aTest.tsx
        │   ├── bTest.tsx
        │   └── cTest.tsx
        ├── _app.tsx
        ├── _document.tsx
        └── index.tsx
  • 13 이후 버전(App Router)
└── src/
    └── app/
        ├── layout.tsx // root layout
        └── page.tsx // root page
└── src/
    └── app/
        ├── test/
        │   ├── layout.tsx
        │   └── page.tsx
        ├── layout.tsx
        └── page.tsx
└── src/
    └── app/
        ├── test/
        │   ├── testHeader.tsx
        │   ├── layout.tsx
        │   └── page.tsx
        ├── layout.tsx
        └── page.tsx
└── src/
    └── app/
        └── test/
            ├── (aTest)/
            │   └── aTest/
            │       ├── layout.tsx
            │       └── page.tsx
            ├── (bTest)/
            │   ├── bTest/
            │   │   ├── layout.tsx
            │   │   └── page.tsx
            │   ├── cTest/
            │   │   ├── layout.tsx
            │   │   └── page.tsx
            │   └── layout.tsx
            ├── layout.tsx
            └── page.tsx

Data Fetching

getServerSideProps/getStaticProps -> async fetch/cache/next revalidate

  • 13 이전 버전까지는 getServerSideProps / getStaticProps등을 정의하며 SSR과 SSG 렌더링 방식들을 활용
Data Fetch 방식
  • 13 이전 버전(getServerSideProps/getStaticProps)
export const getServerSideProps = async() => {
 	try {
   		const response = await fetch("/api/test/server");
   
   		if(response.status === 200) {
     		const data = await response.json();
     			return {
       			  props: { data }
     			}
   		}
   
        return {props: {} };
    } catch (error) {
   		console.error(error);
   		return {props: {} };
 	}
}
export const getStaticProps = async () => {
  try {
    const response = await fetch("/api/test/static");

    if (response.status === 200) {
      const data = await response.json();
      return {
        props: { data },
      };
    }

    return { props: {} };
  } catch (error) {
    console.error(error);
    return { props: {} };
  }
};
  • 13 이후 버전(fetch)
export const DataFetch = async() => {

  const staticDataFetch = await fetch('/api/test/static', { cache: 'force-cache' });

  const dynamicDataFetch = await fetch('/api/test/server', { cache: 'no-store' });
  
  const revalidateDataFetch = await fetch('/api/test/revalidate', { next: { revalidate: 100 } });
                                                                           
  
}

'개발 지식 > Next.js' 카테고리의 다른 글

[Next.js] Error Handling(Next.js 14)  (3) 2024.07.23
[Next.js] Next.js Layout(Next.js App Router)  (0) 2024.07.22
[Next.js] Next.js Routing(App Router, Not Found Routes, Link)  (0) 2024.07.21
[Next.js] Next.js Hydration  (0) 2024.07.19
[Next.js] REACT VS NEXT.JS  (0) 2024.07.18
'개발 지식/Next.js' 카테고리의 다른 글
  • [Next.js] Next.js Layout(Next.js App Router)
  • [Next.js] Next.js Routing(App Router, Not Found Routes, Link)
  • [Next.js] Next.js Hydration
  • [Next.js] REACT VS NEXT.JS
견코
견코
자소서 쓰다가 글을 못 써서 만든 블로그
  • 견코
    개발로 코딩하기
    견코
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 개발 지식
        • Java
        • Spring
        • Vue
        • CS
        • DB
        • Next.js
      • 잡동사니
        • 개요
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
견코
[Next.js] Next.js 버전 별 특징(13 이전, 13, 14)
상단으로

티스토리툴바