일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 엑셀필터복사붙여넣기
- 봉제용어
- 우레탄지퍼
- 영어시간읽기
- TACKING
- 엑셀자동서식
- 미국영어연음
- 고급영어단어
- Armhole Drop
- WHATTIMEOFTHEDAY
- 40HQ컨테이너40GP컨테이너차이
- 엑셀드래그단축키
- 헤이큐
- 암홀트롭
- 웹API
- 필터링후복사붙여넣기
- MERN스택
- 와끼
- 지연환가료
- 40HQ컨테이너
- 나일론지퍼
- 클린코드
- 비리짐
- 자켓실측
- 슈퍼코딩
- 요척합의
- 핸드캐리쿠리어차이점
- AATCC
- 미니마카
- 비슬론지퍼
- Today
- Total
CASSIE'S BLOG
useEffect (랜더링 또는 변수 값 변경될 때 실행되는 함수) 본문
useEffect - React life cycle
react에서는 마운트, 언마운트 개념이 있습니다.
간단하게 설명하면 아래와 같습니다.
마운트 : 컴포넌트가 생길 때
언마운트 : 컴포넌트가 사라질 때
라고 생각하시면 편합니다.
useEffect란,
페이지가 맨 처음에 랜더링 될 때, 또는 변수의 값이 변경될 때 실행되는 함수이다.
클릭할 때마다 1씩 증가하는 간단한 버튼을 만들어보자.
Udemy 에서 되게 중요개념을 꼭 알아야한다고 함
We understand that the second argument is very significant.
useEffect(()=> {
console.log(‘hi’);
}, []);
second argument: []
called after first render
Never called again
We understand that the arrow function is gonna be called.
on the initial render of component no matter what.
And then the second argument determines whether or not the arrow function is gonna be called again in the future.
[정리하면]
[] 이거는 나중에 또 불러지게되고
화살표함수는 처음으로만 딱 불러지게 된다.
Tricky things around useEffect
1. Understanding when our arrow function gets called
2. Understanding the arrow function’s return value
3. Understanding stale valuable references
"과거 값 참조의 이해"입니다.
"stale"은 일반적으로 "때묻은"이나 "노후한"이라는 뜻으로 사용되며, 코드에서는 "과거의" 값을 나타내는 경우가 많습니다.
codesandbox.io/hungry-fog0ev1ec
빈 배열을 전달하면 해당 useEffect는 컴포넌트가 처음 마운트될 때만 실행되고, 이후에는 종속성이 없기 때문에 다시 실행되지 않습니다.
종속성 목록에는 주로 useEffect가 의존하는 상태나 프롭스와 같은 값들이 들어갑니다. 이 값들 중 하나라도 변경되면 useEffect가 다시 실행됩니다. 종속성 목록에 있는 값들 중 하나라도 변경되지 않으면 효과는 계속해서 이전에 실행된 결과를 유지합니다. 이것은 효율적인 리소스 사용을 돕고 불필요한 업데이트를 방지하는 데 도움이 됩니다.
종속성 목록에 들어가는 것은 주로 컴포넌트가 의존하는 상태나 프롭스 등입니다. 예를 들어, 특정 상태가 변경될 때만 useEffect를 실행하고 싶다면 해당 상태를 배열에 포함시킬 수 있습니다.
import React, { useEffect, useState } from 'react';
const ExampleComponent = ({ someProp }) => {
const [count, setCount] = useState(0);
useEffect(() => {
console.log('Effect ran!');
// 여기에서 원하는 작업 수행
}, [count, someProp]); // count와 someProp이 변경될 때만 useEffect 실행
return (
<div>
<p>{count}</p>
<button onClick={() => setCount(count + 1)}>Increment</button>
</div>
);
};
export default ExampleComponent;
이 경우, useEffect는 count나 someProp 중 하나라도 변경될 때에만 실행됩니다. 종속성 목록에 있는 값들 중 하나가 변경되지 않으면 useEffect는 실행되지 않습니다.
const ExampleComponent = ({ someProp }) => {
const [count, setCount] = useState(0);
그러면 counter함수에 변화가 있을 떄마다 화살표함수가 다시 실행된다고함.
ESLint is good, but be careful!
'PROGRAMMING > React' 카테고리의 다른 글
"redux에서 서버 데이터를 처리하기 번거로워요" → react-query (1) | 2023.11.20 |
---|---|
fullcalender api 리액트 (1) | 2023.11.17 |
쇼핑몰 만들기 part2 (0) | 2023.11.05 |
[슈퍼코딩] 25강 이벤트 (0) | 2023.10.25 |
컴포넌트와 엘리먼트의 차이 (1) | 2023.10.21 |