728x90
반응형
[React] react에서의 Side Effect
Side effect는 함수나 컴포넌트가 자신의 입력값 이외의 외부 상태를 변경하거나, 외부 시스템과 상호작용할 때 발생하는 동작을 의미합니다.
useEffect에서의 Side Effect:
- 정의: 컴포넌트가 렌더링되고 브라우저가 스크린 페인트 이후에 실행되어 외부 시스템과 상호작용하거나 상태를 변경하는 동작.
- 예시: 데이터 가져오기, 타이머 설정, DOM 조작 등.
useEffect(() => {
document.title = `You clicked ${count} times`; // 사이드 이펙트: DOM 업데이트
}, [count]); // count가 변경될 때마다 실행
이벤트 핸들러에서의 Side Effect:
- 정의: 사용자 상호작용에 반응하여 프로그램의 상태를 변경하거나 외부 시스템과 상호작용하는 동작.
- 예시: 버튼 클릭 시 상태 변경, API 호출 등.
function handleClick() {
setCount(count + 1); // 사이드 이펙트: 상태 변경
}
요약
- Side effect는 함수가 자신의 입력값 이외의 외부 상태를 변경하거나 외부 시스템과 상호작용하는 모든 동작입니다.
- React 컴포넌트에서 useEffect는 컴포넌트가 렌더링된 후에 발생하는 side effect를 처리합니다.
- 이벤트 핸들러에서는 사용자의 상호작용에 대한 반응으로 side effect가 발생합니다.
- 외부상태란?
- 함수나 컴포넌트의 범위를 벗어난 상태나 시스템을 말합니다.
- 컴포넌트 밖에 있는 상태: 함수 컴포넌트가 직접 접근하지 않는 상태, 예를 들어 전역 상태, 브라우저 API(DOM 조작 등), 서버 데이터, 로컬 스토리지 등이 있습니다.
- 컴포넌트의 입력값 외부: 컴포넌트의 props, state 이외의 모든 외부 상태나 시스템.
- ( 서버와의 상호작용, 브라우저 API와의 상호작용, DOM을 직접 조작하거나, localStorage, sessionStorage와 같은 브라우저 API를 사용, 전역 상태 변경 )
728x90
반응형
'react.js' 카테고리의 다른 글
[React] useSyncExternalStore (외부 데이터 구독 새로운 방법) (0) | 2024.06.09 |
---|---|
[React] Props 변경 시 상태 초기화하기 (not UseEffect, but Key) (0) | 2024.06.09 |
[React] flushSync (0) | 2024.06.08 |
[React] forwardRef (0) | 2024.06.08 |
[React] Mount, Update, Unmount (0) | 2024.06.03 |
댓글