React
리액트 Hooks: useEffect
index.ys
2023. 3. 23. 13:45
useEffect
- 컴포넌트가 화면에 첫 렌더링, 다시렌더링, 화면에서 사라질때 특정작업을 실행 시캘떄 사용됨.
기본구문
- useEffect는 괄호안에 두가지 인자를 가진다 첫번째 인자는 함수를 가지고 두번째 인자는 배열을가진다.
import react, { useEffect } from "react"
useEffect(()=>{작업내용}
인자로 콜백함수를 전달 받는다.
콜백함수:다른 함수의 인자로 전달된 함수
useEffect 형태1
- useEffect의 인자로 하나의 콜백함수만 전달받는 형태
useEffect(())=>{
작업내용
});
useEffect 형태2
- useEffect의 첫번째인자로 콜백함수를 전달받고 두번째 인자로 배열을 전달받는경우
useEffect (())=>{
작업내용
},[배열]);
전달된 배열을 dependensyarray라고 한다.
dependensyarray는 맨처음 화면에 렌더링될떄 실행
[value]안의 value값이 바뀔때 실행된다.
예제) 렌더링이 완료될때마다 실행되는 예
import React, { useState, useEffect } from 'react';
function Example() {
const [count, setCount] = useState(0);
useEffect(() => {
document.title = `You clicked ${count} times`;
console.log("렌더링이 완료될때마다 실행")
});
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
export default Example
예제) 최초렌더링시에만 실행되는 예시 document.ready와 비슷한 역할이다
import React, { useState, useEffect } from 'react';
function Example() {
const [count, setCount] = useState(0);
useEffect(() => {
document.title = `You clicked ${count} times`;
},[]);
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
export default Example
예제)특정 값이 변경될때만 실행되는 예시
import React, { useState, useEffect } from 'react';
function Example() {
const [count, setCount] = useState(0);
useEffect(() => {
document.title = `You clicked ${count} times`;
}.[count]);
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
export default Example
react hook에 대해 이해하기 이해하기 위해 반복적으로 react hook들을 포스팅하며 연습해야겠다.