React

[React] Hook

BeomBe 2024. 2. 1. 22:13
반응형

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