티스토리 뷰
클래스형 컴포넌트에서 생명 주기(life-cycle) componentDidMount, componentDidUpdate, componentWillUnmount를 사용하듯이, 함수형 컴포넌트에서 useEffect를 사용해봅시다.
1️⃣ 컴포넌트가 생성/소멸하는 모든 상황에 함수 실행하기
// 클래스형 컴포넌트
componentDidMount() {
console.log("컴포넌트 생성 될 때 실행");
}
componentWillUnmount() {
console.log("컴포넌트 사라질 때 실행");
}
// 함수형 컴포넌트
useEffect(() => {
// componentDidMount
console.log("컴포넌트 생성 될 때 실행");
// componentWillUnmount (clean up)
return () => {
console.log("컴포넌트 사라질 때 실행");
};
});
2️⃣ 특정 state 관련 컴포넌트가 생성/소멸할 때 함수 실행하기
// 클래스형 컴포넌트
// value 값이 변할 때만 함수를 실행한다.
componentDidUpdate(prevProps, prevState) {
if (prevState.value !== this.state.value) {
console.log("value 관련 컴포넌트 랜더링 될 때 실행");
}
}
// 함수형 컴포넌트
const [value, setValue] = useState(true);
useEffect(() => {
// componentDidUpdate
console.log("value 관련 컴포넌트 랜더링 될 때 실행");
}, [value]);
3️⃣ 처음 컴포넌트 생성할 때만 함수 실행하기
처음 랜더링 될 때 한 번만 함수를 실행하고 싶다면, useEffect에 빈 배열 [ ]을 넘기면 됩니다. 그러면 React는 어떠한 state나 props에 의존하지 않고, 함수를 재실행하지 않습니다.
useEffect(() => {
// Mouting
console.log("처음에만 실행");
}, []);
참고자료
'✍ 기록' 카테고리의 다른 글
[코어 자바스크립트] 객체를 왜 가변적이라고 하나요? (2) | 2024.01.08 |
---|---|
[Flutter] window에 flutter 개발 환경 만들기 + VS Code (0) | 2022.08.14 |
Spotify에서 플레이리스트 위젯 + Unsplash에서 랜덤 이미지 가져오기 (0) | 2021.12.30 |
Next.js 살펴보기 (Router, Layouts, Fetching, CSS) - 원스탑 튜터링 5주차 (0) | 2021.10.01 |
React 개념 알기(JSX, Component, State, Props, Hook) - 원스탑 튜터링 3주차 (0) | 2021.09.16 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 파이썬
- 프로젝트
- 키워드밑줄
- python
- 코어자바스크립트
- 비동기
- DP
- 코테
- flutter
- 백준
- 판례암기
- Spotify
- dfs
- Python3
- React
- 웅진IT
- Unsplash
- 프로그래머스
- backtracking
- fetch
- React.js
- 다이나믹프로그래밍
- node.js
- p5js
- rn
- 동기
- 코드분석
- 코딩테스트
- React-native
- 감시피하기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함