빵 입니다.

상태가 없는 컴포넌트(Stateless)와 상태가 있는 컴포넌트(Statefull) 본문

프론트엔드/React

상태가 없는 컴포넌트(Stateless)와 상태가 있는 컴포넌트(Statefull)

bread-gee 2023. 12. 5. 20:24

제어된 컴포넌트 vs 제어되지 않은 컴포넌트

프레젠테이셔널 컴포넌트 vs 상태 유지 컴포넌트

dumb vs smart

Stateless vs Statefull

 

📌 상태가 없는 컴포넌트 (Stateless)

const StatelessComponent = (props) => {
	return <div>{props.message}</div>;
};
  • 상태(state)를 갖지 않는 컴포넌트
  • props를 받아 렌더링하고 UI를 표시하는 역할
  • 렌더링만 담당하므로 생명주기 메서드나 상태 변경에 따른 부가적인 작업을 수행하지 않는다.
  • 리액트 훅을 사용하지 않는다.
  • 단순하고 가벼워서 성능이 좋다.

 

📌 상태가 있는 컴포넌트 (Statefull)

import React, { useState, useEffect } from 'react';

const StatefulComponent = () => {
	const [count, setCount] = useState(0);

	useEffect(() => {
		// 컴포넌트가 마운트될 때와 업데이트될 때 실행되는 부수 효과
		document.title = `Count: ${count}`;
	}, [count]);

	const incrementCount = () => {
		setCount(count + 1);
	};

	return (
		<div>
			<p>Count: {count}</p>
			<button onClick={incrementCount}>Increment</button>
		</div>
	);
};
  • 내부적으로 상태(state)를 가지는 컴포넌트
  • useState를 사용하여 상태를 관리할 수 있다.
  • useEffect를 통해 부수 효과를 처리한다.
  • 리액트 훅을 사용한다.
  • 복잡한 상태 논리와 상호작용이 필요한 경우에 사용한다.

'프론트엔드 > React' 카테고리의 다른 글

조건부 렌더링  (0) 2023.12.05
배열 데이터를 렌더링할 때 key를 꼭 써야할까?  (0) 2023.12.05
양방향 바인딩  (0) 2023.12.05
useState()  (0) 2023.12.05
이벤트 핸들링  (0) 2023.12.04
Comments