본문 바로가기
React

[React] Hook

by BeomBe 2024. 2. 1.
반응형

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>
    );
}
반응형