사실 이미 정리했었음. 근데 또 공부하고 있음. 나 이번엔 진짜 다 확실히 이해함👏 . 완전 완벽. 오늘은 그러함.
리액트 컴포넌트의 생명주기에 따라 동작을 제어할 수 있는 기능을 제공
예🤔?
콜백함수를 입력받아 특정 생명주기 마다 호출
ㅇㅖ😨?
두번째 인수로 의존성 배열을 전달받아 콜백함수의 호출 타임을 결정하기도 함
😱?
useEffect(콜백함수, 의존성배열)
//그러니깐 보통 이런 형태를 많이 봤음
useEffect(() => {
},[])
의존성 배열이 있는 경우
의존성 배열안에 있는 [상태]가 변할때만 콜백함수를 실행시켜라 !
의존성 배열이 비어있는 경우
최초 1회만 콜백함수를 실행시켜라 !
의존성 배열이 자체가 없는 경우
항상 콜백함수를 실행시켜라 !
useEffect(function () {
setInterval(function () {
let now = new Date();
let year = now.getFullYear();
let month = now.getMonth() + 1;
let date = now.getDate();
let hour = now.getHours();
let minute = now.getMinutes();
let second = now.getSeconds();
month = month < 10 ? `0${month}` : month;
date = date < 10 ? `0${date}` : date;
hour = hour < 10 ? `0${hour}` : hour;
minute = minute < 10 ? `0${minute}` : minute;
second = second < 10 ? `0${second}` : second;
setDate(`${year}년 ${month}월 ${date}일`);
setTime(`${hour}:${minute}:${second}`);
}, 1000);
}, []);
특정 컴포넌트에 접근할 수 있도록 참조 객체를 반환하는 함수
const inputElem = useRef(null);
const handleClick = () => {
inputElem.current.focus();
};
return (
<>
{/* inputElem이라는 손가락이 input을 가리킬수 있게됨 */}
<input ref={inputElem} />
<button onClick={handleClick}>Focus on input</button>
</>
);
const inputElem = useRef(null);
ref = {inputElem}