Next.js - 클라이언트 컴포넌트, 서버 컴포넌트

2024. 9. 25. 22:14·프론트엔드/Next.js
목차
  1. Next.js에서 컴포넌트를 사용
  2. "use client" 추가
  3. 서버 컴포넌트 vs 클라이언트 컴포넌트??
  4. 둘 다 한 페이지에서 써야하는 경우는?

 

Next.js에서 컴포넌트를 사용

const HomePage = () => {
  console.log("콘솔아 나타나라");
  return (
    <div>
      <h1>Home Page</h1>
    </div>
  );
};

 

console.log가 브라우저 환경에서는 실행되지 않고, 서버에서만 실행됨

 

 

 

"use client" 추가

하단에 있는 컴포넌트 들이 클라이언트에서 실행될 수 있는 로직이다는 걸 Next.js에게 알려주는 것

Home에 의해 그려지는 render tree들은 모두 클라이언트 tree로 변하게 됨

"use client";

const HomePage = () => {
  console.log("콘솔아 나타나라");
  return (
    <div>
      <h1>Home Page</h1>
    </div>
  );
};

 

페이지를 새로고침하면 브라우저와 서버 둘 다 실행됨

 

 

 

클라이언트 사이드에서 리액트를 사용하는 hook들은 클라이언트에서만 사용이 가능함 (예를 들어 useEffect, useState)

여기도 use client는 필수!!

"use client";

import { useEffect } from "react";

const HomePage = () => {
  useEffect(() => {
    console.log("콘솔아 나타나라");
  }, []);
  return (
    <div>
      <h1>Home Page</h1>
    </div>
  );
};

 

브라우저(클라이언트)에서는 실행되는데 서버에서는 실행이 안되는 모습

 

 

 

서버 컴포넌트 vs 클라이언트 컴포넌트??

클라이언트 컴포넌트 - 유저와의 상호작용, 인터랙션이 있는 경우, hook을 사용해야하는 경우

서버 컴포넌트 - 나머지의 경우

 

 

둘 다 한 페이지에서 써야하는 경우는?

따로 ClientExample.tsx 파일을 만든 후 거기에 클라이언트 컴포넌트를 만들어줌 > 두개의 tree를 섞어서 사용 가능

// src > component > ClientExample.tsx

"use client";

import { useEffect } from "react";

const ClientExample = () => {
  useEffect(() => {
    console.log("안녕, 난 클라이언트 컴포넌트야");
  }, []);
  return (
    <div>
      ClientExample
    </div>
  );
};

export default ClientExample;
// home > page.tsx

import ClientExample from "../component/ClientExample";

const HomePage = () => {
  console.log("안녕, 난 서버 컴포넌트야");
  return (
    <div>
      <ClientExample />
    </div>
  );
};

export default HomePage;

클라이언트와 서버가 각각 실행되는 것을 볼 수 있음

 

 

 

 

'프론트엔드 > Next.js' 카테고리의 다른 글

[최종 프로젝트] Chart.js를 활용한 데이터 시각화  (1) 2024.10.31
[최종 프로젝트] 연도, 월 selectbox 컴포넌트 만들기  (0) 2024.10.31
회원가입 시 자동으로 세션 생성 문제 (Next.js & Supabase)  (0) 2024.10.19
Next.js에서 middleware.ts 사용 시 주의사항 (tsconfig.json 설정)  (0) 2024.10.17
Next.js - 4가지 렌더링 방식 (SSG, SSR, CSR, ISR)  (0) 2024.09.26
  1. Next.js에서 컴포넌트를 사용
  2. "use client" 추가
  3. 서버 컴포넌트 vs 클라이언트 컴포넌트??
  4. 둘 다 한 페이지에서 써야하는 경우는?
'프론트엔드/Next.js' 카테고리의 다른 글
  • [최종 프로젝트] 연도, 월 selectbox 컴포넌트 만들기
  • 회원가입 시 자동으로 세션 생성 문제 (Next.js & Supabase)
  • Next.js에서 middleware.ts 사용 시 주의사항 (tsconfig.json 설정)
  • Next.js - 4가지 렌더링 방식 (SSG, SSR, CSR, ISR)
장쫑이이
장쫑이이
  • 장쫑이이
    JongHoy
    장쫑이이
  • 전체
    오늘
    어제
    • 코딩공부하기 (41)
      • 프론트엔드 (41)
        • Next.js (12)
        • React (16)
        • TypeScript (2)
        • 상태관리 (1)
        • HTML&CSS (1)
        • 기타 (9)
      • 과거 공부 내용 (0)
        • JSCODE 그룹스터디 (0)
        • JS 객체 지향 프로그래밍 (0)
        • 리엑트 (0)
        • 제로초 - 웹 게임을 만들며 배우는 리엑트 (0)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    토글
    팀프로젝트
    Filter
    While문
    destructuring
    LastIndexOf
    reduce
    styled-components
    slice
    행렬의 덧셈
    필터링
    이중 for문
    map
    속성 추가
    github
    setAttribute
    유클리드 호제법
    git
    isNan
    useState
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
장쫑이이
Next.js - 클라이언트 컴포넌트, 서버 컴포넌트
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.