1. useEffect
의존성 배 | 실행 시 | 주요 용도 |
없음 (useEffect(() => {})) | 매 렌더링마다 실행됨 | 렌더링 추적, 디버깅 |
빈 배열 ([]) | 처음 1회만 실행됨 (마운트 시) | API 요청, 초기 설정 |
배열에 값 있음 ([count]) | 배열 안 값이 바뀔 때만 실행됨 | 값 변화 감지, 조건 실행 |
2. useReducer
요소 역할 | 요소 설명 |
useReducer(reducer, initialState) | 상태(state)와 디스패처(dispatch)를 생성하는 훅 |
state | 현재 상태값 |
dispatch(action) | 상태를 변경하라는 **요청(action)**을 보내는 함수 |
action | 객체 형태로 dispatch에 전달됨. 보통 { type, payload }로 구성됨 |
reducer(state, action) | 전달받은 action에 따라 상태를 변경하고 새로운 상태를 반환하는 함수 |
단계 동작 | |
1 | dispatch({ type: 'increment' }) 호출 |
2 | reducer(state, action) 호출됨 |
3 | 새로운 상태 계산 후 반환 (return { count: state.count + 1 }) |
4 | state가 업데이트됨 |
'웹 개발 > 프론트엔드 개발' 카테고리의 다른 글
JavaScript의 `try-catch` 구문 (0) | 2025.03.18 |
---|---|
반환값이 JSX인 모든 경우의 수 정리 (0) | 2025.02.12 |
250212 복습4 (0) | 2025.02.12 |
250212 복습2 (0) | 2025.02.12 |
객체와 컴포넌트의 차이 (0) | 2025.02.12 |