우리가 쓰는 컴포넌트에는 Lifecycle 이라는 개념이 있다.
컴포넌트에게도 인생이 있다...🤭
컴포넌트는
"Detail 컴포넌트 등장 전에 이것 좀 해줘"
"Detail 컴포넌트 사라지기 전에 이것 좀 해줘"
"Detail 컴포넌트 업데이트 되고나서 이것 좀 해줘"
이런식으로 코드를 실행해달라고 간섭할 수 있다.
갈고리(Lifecycle hook)를 달아주면 코드 실행을 할 수 있다.
import {useState, useEffect} from 'react';
function Detail(){
useEffect(()=>{
//컴포넌트 로드 혹은 업데이트 마다 실행 할 코드
console.log('안녕')
});
return (생략)
}
-> '안녕' 출력
<React.StrictMode>
라는 태그가 있으면 2번 출력해준다.function Detail(){
for (var i = 0; i < 10000; i++){
console.log(1);
}
return (생략)
}
-> 반복문을 돌린 후 하단 html을 보여준다.
function Detail(){
useEffect(()=>{
for (var i = 0; i < 10000; i++){
console.log(1);
});
return (생략)
}
-> html을 보여준 후 반복문을 돌린다.
: Detail페이지 안에 노란박스를 만들고, Detail 페이지 방문 2초 후에 박스가 사라지게 만들기.
setTimeout( ()=>{ 1초 후 실행할 코드 }, 1000);
let [alert, setAlert] = useState(true);
useEffect(() => {
setTimeout(() => {setAlert(false);}, 2000);
});
<div className="container">
{alert === true ? (<div className="alert alert-warning">2초이내 구매 시 할인</div>) : null}
</div>
✍ 처음숙제를 해결했을 땐 머릿속에서 정리가 잘 되지 않았는데 써 내려가다보니 이해가 잘 됐다.
El crecimiento constante es bueno