본문 바로가기
개발공부/React

[리액트] Component

by zing! 2025. 3. 7.

컴포넌트(Component)

리액트에서 컴포넌트(Component)는 UI를 구성하는 기본 단위로, 재사용이 가능한 코드 덩어리다.
예를 들어, 버튼, 네비게이션 바, 카드 UI 같은 것들이 각각 하나의 컴포넌트가 될 수 있다.

 

리액트에서는 함수형 컴포넌트와 클래스형 컴포넌트가 있는데,
React 16.8 이후로는 함수형 컴포넌트가 주로 사용되며, 클래스형 컴포넌트는 거의 사용되지 않는다.
즉, 리액트의 컴포넌트는 결국 "JSX를 반환하는 함수"라고 볼 수 있다.

 


컴포넌트의 특징

(1) JSX를 반환하는 함수

컴포넌트는 JavaScript 함수처럼 작동하며, JSX를 반환하는 함수다.
즉, 컴포넌트를 실행하면 HTML처럼 보이는 JSX 코드가 반환되며, React가 이를 해석해 화면에 렌더링한다.

 

JSX 사용 규칙 !

JSX (JavaScript XML) 란? JavaScript의 확장 문법이면서 React에서 UI를 정의할 때 사용하는 문법으로, JavaScript 코드 안에서 HTML과 유사한 형식으로 요소를 작성할 수 있게 해준다. JSX의 기본 규칙더보기더

zing829.tistory.com

 

(2) 재사용 가능

한 번 만든 컴포넌트는 여러 곳에서 반복해서 사용할 수 있다.

 

(3) 컴포넌트는 계층 구조를 가짐 (트리 구조)

컴포넌트는 다른 컴포넌트를 포함할 수 있으며, 트리 구조를 형성한다.
최상위 컴포넌트인 App 컴포넌트 아래 여러 개의 하위 컴포넌트가 배치된다.

 

(4) props를 통해 데이터 전달

부모 컴포넌트에서 자식 컴포넌트로 데이터를 전달할 때는 props(속성)를 사용한다.
리액트는 단방향 데이터 흐름(부모 → 자식)을 따르며, props는 읽기 전용(Read-only)이므로 수정할 수 없다.

 

  • props는 읽기 전용 (자식 컴포넌트에서 직접 변경 불가)
  • 반드시 부모 → 자식 방향으로만 전달 가능함.(단반향 데이터 흐름)
  • 객체 형태로 전달되며, { }를 사용해 접근할 수 있음.

 

(5) 상태(state)를 가질 수 있다

컴포넌트는 state를 가지고 있으며, 상태가 변경되면 리렌더링이 발생한다.

(함수형 컴포넌트에서 useState를 사용해 관리함.)

 

  • State는 컴포넌트 내부에서 관리하는 데이터
  • useState()를 사용해서 정의
  • State가 변경되면 해당 컴포넌트만 리렌더링됨

 

(6) 불필요한 렌더링 방지 – React.memo()

리액트에서는 부모 컴포넌트의 state가 변경되면, 자식 컴포넌트도 함께 리렌더링된다.
하지만, 자식 컴포넌트의 내용이 변경되지 않았다면 불필요한 리렌더링이 발생할 수 있다.
이때 React.memo()를 사용하면 props가 변경된 경우에만 렌더링을 수행하게 할 수 있다.


리액트 컴포넌트 명명 규칙

컴포넌트 이름은 반드시 대문자로 시작해야 한다

리액트에서 컴포넌트의 이름은 반드시 대문자로 시작해야 한다.
소문자로 시작하면 리액트가 기본 HTML 태그로 인식할 수 있기 때문이다.

'개발공부 > React' 카테고리의 다른 글

[리액트] useState  (0) 2025.03.10
[리액트] State  (0) 2025.03.10
[리액트] props  (0) 2025.03.07
[리액트]JSX 사용 규칙 !  (0) 2025.03.05
처음 배우는 React : 설치부터 JSX까지 간단 정리  (0) 2025.03.05