React Hooks

함수형 Component과 관련된 핵심 기술인 React Hooks에 대해 알아봅시다.

React Hooks라는 기술은 왜 등장했을까?

React Hooks는 클래스형 Component를 사용하지 않고도 state를 사용할 수 있는 기술입니다. 좀 더 자세히 알아봅시다.

클래스형 Component -> 함수형 Component

클래스형 Component의 단점을 개선하여 함수형 Componenet가 탄생하였습니다.

함수형 Component는 클래스형 Component에 비해 더 짧고 심플한 코드 작성이 가능했으며, 성능 또한 더 좋습니다.

클래스형 Component 예시
import React, { Component } from 'react';

export default class ClassCpnt extends Component {
 render() {
   return (
     <div>Hello</div>
   )
 }
}
함수형 Component 예시
import React from 'react';

export default function FunctionCpnt() {
    return (
        <div>Hello</div>
    )
}

하지만, 함수형 Component에서는 클래스형 Component에서 사용했었던 stateLifecycle Method을 사용할 수 없었습니다. 그래서 Hooks 탄생 전에는 울며 겨자먹기로 클래스형 Component를 사용하는 경우가 종종 있었습니다.

React Component의 생명주기

React Class Component는 3가지 생명주기 함수를 갖습니다.

  • componentDidMount : Component가 Mount된 직후 호출됨

  • componentDidUpdate : Component가 갱신되었을 때 호출됨

  • componentWillUnmount : Component가 제거되기 직전에 호출됨

이러한 문제점들을 해결하고자 React 16.8에서 함수형 Component에 state와 Lifecycle Method 기능을 제공해주는 React Hooks라는 기술이 추가됩니다.

(hook into == 연동하다 / React Hooks는 함수형 Component에서 state와 Lifecycle Method을 연동할 수 있게 해주는 함수)

대표적인 React Hooks, useState와 useEffect

useState와 비교해보기

useEffect와 비교해보기

useEffect로 표한한 3가지 Lifecycle Method

클래스형 Component에서 componentDidMount, componentDidUpdate, componentWillUnmount가 제공해주는 생명주기 기능을 함수형 Component에서는 useEffect Hook 하나로 구현할 수 있다.

Last updated