ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • React Hook에 대하여(1)
    Programming/ReactJs 2022. 2. 10. 12:25

    React Hook은 리액트 버전 16.8 이후부터 요소로 새로 추가 되었다.

    Hook을 이용하면 기존의 클래스 기반으로 코드를 작성할 필요가 없으면서 상태를 관리 할 수 있게하여주며, 이는 함수형 컴포넌트로써 완벽히 작성하여 동작 할 수 있다.

     

    우선 기본적인 예제 코드를 확인하여 보자.<리액트 공식 Hook의 개요에서 발췌>

    import React, { useState } from 'react';

     

    function Example() {

    // "count"라는 새로운 상태 값을 정의합니다.

    const [count, setCount] = useState(0);

     

    return (

        <div>

            <p>You clicked {count} times</p>

            <button onClick={() => setCount(count+1)}>

                Click me

            </button>

        </div>

        );

    };

     

    여기서 확인 할수 있는 것은 바로 useState이다. 이 함수는 Hook에서 배울 수 있는 가장 기초이자 상태 관리의 시작이 되는 함수라고 할 수 있다.

     

    코드를 살펴본다면 jsx 엘리먼트 내부에서 발생하는 onClick 이벤트 핸들러를 통하여 setCount를 호출하고 매개변수로 count+1을 전달한다.

     

    이 의미는 바로 useState 함수를 처음 선언 할 때 배열 구조 분해 할당을 통하여 첫번째 인수는 현재의 상태값, 두번째 인수는 상태 값을 초기화하는 함수의 이름을 지정해주는 것이다.

     

    그러므로 setCount(count+1)을 호출하였다는 것은, count 값을 기존의 상태 값에 +1을 하여 새로이 초기화 하겠다는 의미이다.

     

    또한 useState는 클래스 컴포넌트의 this.state와는 다르게 객체일 필요는 없다.

     

     

    function ExampleWithManyStates() {

        // 상태 변수를 여러 개 선언했습니다!

        const [age, setAge] = useState(42);

        const [fruit, setFruit] = useState('banana');

        const [todos, setTodos] = useState([{ text: 'Learn Hooks' }]);

        /  / ...

    }

    또한, 이 예제 코드에서 볼 수 있듯이 함수형 컴포넌트 내부에서 여러개의 useState를 선언하여도 문제가 없다.

     

    이러한 Hook은 Class 컴포넌트에서는 동작하지 않지만, Functional 컴포넌트에서 State와 생명주기를 연동 할 수 있게 하여주는 함수다.

     

    이러한 Hook의 종류는 여러가지가 있으며, 천천히 하나씩 포스팅 하도록 하겠다.

    'Programming > ReactJs' 카테고리의 다른 글

    React Hook에 대하여(2)  (0) 2022.02.10
    크롤링 테스트 이슈 해결  (0) 2022.02.10
    [기존 블로그 마이그레이션]React Snap  (0) 2022.02.10

    댓글

Designed by Kort.