반응형
Function Component와 Class Component 비교
Function Component | Class Component |
state 사용불가 | 생성자에서 state를 정의 |
Lifecycle에 따른 기능구현 불가 | setState() 함수를 통해 state 업데이트 |
Hooks | Lifecycle methods 제공 |
1. useState
- state를 사용하기 위한 Hook
// useState 사용법
const [변수명, set함수명] = useState(초기값);
예제
import React, { useState } from "react";
function Counter(props) {
const [count, setCount] = useState(0); // 변수 각각에 대한 set함수가 따로 존재
return(
<div>
<p>총 {count}번 클릭했습니다. </p>
<button onClick={() => setCount(count + 1)}>
클릭
</button>
</div>
);
}
2. useEffect
- Side effect를 수행하기 위한 Hook
- Lifecycle와 동일한 역할
// 사용법
useEffect(이펙트 함수, 의존성 배열);
// Effect 함수가 mount, unmount시에 한번씩만 실행되려면
useEffect(이펙트 함수, []);
// 의존성 배열 생략가능 -> 컴포넌트가 업데이트 될 때마다 호출됨
useEffect(이펙트 함수);
예제
import React, { useState } from "react";
function Counter(props) {
const [count, setCount] = useState(0); // 변수 각각에 대한 set함수가 따로 존재
// componentDidMount, componentDidUpdate 와 비슷하게 작동
useEffect(() => {
document.title = `You clicked ${count} times`;
});
return(
<div>
<p>총 {count}번 클릭했습니다. </p>
<button onClick={() => setCount(count + 1)}>
클릭
</button>
</div>
);
}
반응형
'React' 카테고리의 다른 글
[React] 제어(Controlled) 컴포넌트와 비제어(Uncontrolled) 컴포넌트의 차이 (26) | 2024.02.16 |
---|---|
[React] useMemo, useCallback, useRef (2) | 2024.02.02 |
[React] State와 Lifecycle (1) | 2024.02.01 |
[React] Component 합성과 추출 (3) | 2024.01.26 |
[React] Component 만드는법 및 렌더링 (4) | 2024.01.25 |