[Next.js] css 모듈 사용 / 데이터 패칭 (geStaticProps, getServerSideProps)

2024. 8. 20. 09:07·Frontend/Next.js
728x90

CSS 모듈 사용

import styles from './Home.module.css';

function HomePage(){
	return <h1 className=[styles.title}>Hello World<h1>;
}

export default HomePage;

 - `Home.module.css` 파일을 만들어 `styles.title` 처럼 사용한다.

 

전역 CSS 사용

//pages/app.js
import '../styles/globals.css';

function MyApp({ Component, pageProps }) {
	return <Conponent {...pageProps} />;
}

export default MyApp;

- `pages/app.js` 파일에서 임포트 한다.

 

데이터 패칭 (geStaticProps, getServerSideProps)

 - Next.js는 데이터 패칭 메서드를 제공하여 서버 사이드 렌더링과 정적 사이트 생성을 지원한다.

  • getStaticProps : 정적 생성시에 데이터를 패칭할 때 사용됩니다. 페이지를 빌드 시점에서 미리 생성하고, 요청 시점에는 HTML 파일을 제공하여 빠르게 렌더링할 수 있다.

사용시점 

  • 페이지가 정적으로 생성되어야 할 때
  • 데이터가 자주 변하지 않거나 변동이 적은 경우

특징

  • 빌드 시점에서 호출되어 HTML을 미리 생성한다.
  • 사용자 요청 시에는 이미 생성된 HTML이 제공되므로 응답 속도가 빠르다.
  • 데이터가 변경될 경우 재빌드를 해야한다.
export async function getStaticProps(){
	//데이터 패칭
	const res = await fetch('https://api.example.com/data');
    const data = await res.json();
    
    //페이지에 props로 전달
    return {
    	props: {
        	data
            }
          };
       }
       
 export default function Homepage({ data }) {
 	return (
    	<div>
        	<h1>Data:</h1>
            <pre>{JSON.stringify(data, null, 2)}</pre>
        </div>
    );
 }

 - 페이지를 빌드 시점에서 미리 생성하여, 클라이언트 요청 시 빠르게 렌더링 할 수 있게 한다.

 

export async function getStaticProps(){
	//데이터 패칭
	const res = await fetch('https://api.example.com/data');
    const data = await res.json();
    
    //페이지에 props로 전달
    return {
    	props: {
        	data
            }
          };
       }

 

비동기 함수 

- 'getStaticProps'는 비동기 함수로, 페이지를 빌드할 때 데이터를 패칭하기 위해 사용된다. Next.js는 이 함수가 반환하는 데이터를 페이지 컴포넌트에 'props' 로 전달한다.

 

데이터 패칭

- 'fetch'를 사용하여 외부 API ('https://api.exple.com/data')로부터 데이터를 가져온다. await을 사용하여 비동기 요청이 완료될 때까지 기다린다. 응답(res)의 JSON 형식으로 반환하여 data 변수에 저장한다.

 

반환값

 - 'getStaticProps'는 객체를 반환하며, 이 객체는 props 속성을 포함한다. props에는 페이지 컴포넌트에 전달할 데이터가 포함된다. (data라는 이름의 속성을 전달하고 있음)

 export default function Homepage({ data }) {
 	return (
    	<div>
        	<h1>Data:</h1>
            <pre>{JSON.stringify(data, null, 2)}</pre>
        </div>
    );

컴포넌트 정의 : HomePage 라는 함수형 컴포넌트를 정의하고 있다. 이 컴포넌트는 data를 props로 받아서 렌더링한다.

 

 

 

728x90
저작자표시 (새창열림)

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

[Next.js] Next-Auth (Google)  (0) 2024.08.20
[Next.js] 라우팅 / getStaticPaths & getStaticProps / userRouter Hook / Redirects & Rewrites  (0) 2024.08.19
[Next.js] API 라우트 / 미들웨어 / CORS  (0) 2024.08.19
[Next.js] next.js 시작하기 ( next.js란? / 장점 / 동작과정 / 프로젝트 생성 )  (0) 2024.08.10
'Frontend/Next.js' 카테고리의 다른 글
  • [Next.js] Next-Auth (Google)
  • [Next.js] 라우팅 / getStaticPaths & getStaticProps / userRouter Hook / Redirects & Rewrites
  • [Next.js] API 라우트 / 미들웨어 / CORS
  • [Next.js] next.js 시작하기 ( next.js란? / 장점 / 동작과정 / 프로젝트 생성 )
hyeminyy
hyeminyy
Full Stack Developer | consistency
  • hyeminyy
    maemingu
    hyeminyy
  • 전체
    오늘
    어제
    • 분류 전체보기 (78)
      • Backend (46)
        • Java (15)
        • JSP & Servlet (5)
        • EL & JSTL (3)
        • Spring (15)
        • DataBase (4)
        • 알고리즘 (4)
      • Frontend (11)
        • Next.js (5)
        • JavaScript (3)
        • Vue.js (3)
      • IT_STUDY (21)
        • 정보처리기사 (9)
        • SQLD (8)
        • 개인공부 (4)
      • Developer! (0)
  • 블로그 메뉴

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

    • Github
    • Notion-portfolio
  • 공지사항

  • 인기 글

  • 태그

    springProject
    알고리즘
    Spring
    el
    Java
    Next.js
    정보처리기사 실기
    httpServletRequest
    개발자
    프론트엔드
    MVC
    정보처리기사 실기 요약
    정처기 실기
    정처기 필기 요약
    sqld자격증
    SQLD
    NextJS
    JSP
    뷰
    정처기 실기 요약
    백앤드
    정처기 요약
    springboot
    Servlet
    코딩테스트
    SQL
    jstl
    백앤드개발자
    정보처리기사
    정처기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
hyeminyy
[Next.js] css 모듈 사용 / 데이터 패칭 (geStaticProps, getServerSideProps)
상단으로

티스토리툴바