티스토리 뷰
클래스형 컴포넌트에서 생명 주기(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("처음에만 실행");
}, []);
참고자료
Using the Effect Hook – React
A JavaScript library for building user interfaces
reactjs.org
'✍ 기록' 카테고리의 다른 글
[코어 자바스크립트] 객체를 왜 가변적이라고 하나요? (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
- Python3
- javascript
- backtracking
- node.js
- 이벤트루프
- 코드분석
- python
- React-native
- 백준
- flutter
- DP
- dfs
- Unsplash
- 코딩테스트
- 문제풀이
- p5js
- React.js
- 다이나믹프로그래밍
- React
- nodeJS
- 백트래킹
- rn
- Spotify
- fetch
- 코테
- 코어자바스크립트
- 비동기
- 프로그래머스
- 파이썬
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함