- 요약
설정한 useState 값이 바뀌면 등록한 함수가 실행.
페이지가 렌더링되고 무조건 최초 한번은 실행 됨.
# 모듈 선언
import React, { useEffect } from "react";
# useEffect 선언
useEffect(() => {}, [value]);
value 값이 변경되면 함수가 실행된다.
value = 변수,
case 1) value를 넣지 않고 []인 상태면, 최초 한번만 실행
case 2) value를 넣으면 value 값이 업데이트 될 때만 실행
case 3) 아예 비워 놓으면 리렌더링 할 때마다 실행
() => {} = 변수가 변경되면 실행할 함수
ex)
const [iu, setIu] = useState(0); -> iu를 0으로 초기화
useEffect(() => { test(); }, [iu]); -> 최초 실행 시 test 함수 한번 호출
setIu(iu + 5); -> iu 값이 변경되면 test 함수 호출
# useEffect로 componentWillUnmount 동작
return문에 화살표 함수를 넣어 적용할 수 있다.
ex)
useEffect(()=>{
return(() => {console.log("componentWillUnmount");});
}, [])
const HomePage = () => {
const [test, setTest] = useState(0);
useEffect(()=>{
console.log("A", test);
return () => {console.log("B", test)};
},[test]);
return (
<div>
<button onClick={()=>{
setTest(test + 1);
}}/>
</div>
);
};
결과
처음 Rendering A 0 출력
button 클릭 시 Rerendering 전 unmount 될 때 B 0
Rerendering 후 A 1
button 클릭 시 test가 1씩 증가하며 반복
반응형
'개발에 도움이 되는 > React' 카테고리의 다른 글
생명 주기(Life Cycle) (0) | 2022.03.01 |
---|---|
react-beautiful-dnd (0) | 2022.02.27 |
Flux 패턴 (0) | 2021.12.23 |
useState (0) | 2021.11.06 |
React (0) | 2021.11.05 |