반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- commonjs와 ecmascript modules(esm)
- firebase id 자동
- vue composable 함수
- git
- vuedraggable
- d3 지도 확대/축소
- vue3 drag and drop
- vue draggable 차트 안나옴
- 인터넷 거버넌스
- pm2 버전 충돌
- repaint
- component is already mounted please use $fetch instead.
- vue 컴포저블 함수
- 참조형 default
- reflow
- 화살표 함수 중괄호
- Learning React
- $fetch
- ecmascript modules(esm)
- ToDo
- 함수형 프로그래밍
- 화살표 함수 {}
- d3 지도 타입스크립트
- 웹 퍼포먼스 도구
- pm2 업데이트 에러
- d3 지도
- d3 지도 툴팁
- in-memory pm2 is out-of-date
- nuxt universal rendering
- cloud firestore id auto increment
Archives
- Today
- Total
빵 입니다.
상태가 없는 컴포넌트(Stateless)와 상태가 있는 컴포넌트(Statefull) 본문
반응형
제어된 컴포넌트 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 |