[React] 4-1장 | React Hook의 정의 및 의미

Re_Go·2024년 1월 11일
0

React

목록 보기
4/10
post-thumbnail

1. Hook이 뭐지?

useState는 React 라이브러리에서 제공하는 훅(Hook) 중 하나로, 함수 컴포넌트에서 상태(state)를 사용할 수 있게 해주는 메서드 인데요.

여기서 Hook이란 리액트 16.8v 부터 등장한 기능으로서, 리액트 라이브러리에서 제공하는 특별한 함수이며, 이 함수들을 사용하여 함수 컴포넌트에서 상태(state) 및 생명주기(lifecycle)와 관련된 기능을 사용할 수 있게 해주는데

이 말인 즉 리액트에서의 상태 및 생명주기 관리는 16.8v에서 등장한 Hook 이전과 이후로 나뉠 수 있다는 뜻인거죠.

2. Hook 이전의 상태 관리

앞서 말씀 드렸다싶이, Hook의 등장 이전까지는 주로 클래스 컴포넌트에서 상태를 관리했는데요. 상태 로직이나 메서드 등이 한 곳에 작성됨으로, 또 반복적인 코드가 증가되다보니 코드의 관리에 있어서 한계를 가질 수 밖에 없었습니다.

import React, { Component } from 'react';

class Example extends Component { // 컴포넌트를 상속 받아 this에 바인딩
  constructor(props) { 
    super(props);
    this.state = {
      count: 0,
    };
  }
  handleIncrement = () => {
  // Component의 this(count를 담고 있는 state)를 1 증가
  this.setState({ count: this.state.count + 1 });
  };

  render() {
    return (
      <div>
        <p>You clicked {this.state.count} times</p>
        <button onClick={this.handleIncrement}>
          Click me
        </button>
      </div>
    );
  }
}
>
export default Example;

3. Hook 이후의 상태 관리

앞서 말씀 드린대로 이전에 사용했던 클래스형 컴포넌트의 여러 문제점들을 개선하기 위해 등장한 Hook 덕분에 번거롭게 this를 바인딩 할 필요가 없어졌고, 코드의 양 또한 줄일 수 있었습니다.

import React, { useState, useEffect } from 'react';

function Example() {

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

  function handleIncrement(){
    setCount(count + 1);
  }
  function handleDecrement(){
    setCount((count) => count - 1);
  }
  function resetStates(){
    setCount(0)
  }

  return (
    <div>
      <p>You clicked {count} times</p>
      <button onClick={handleIncrement}> + </button>
      <button onClick={handleDecrement}> + </button>
      <button onClick={resetStates}> reset </button>
    </div>
  );
}

export default Example;
profile
인생은 본인의 삶을 곱씹어보는 R과 타인의 삶을 배워 나아가는 L의 연속이다.

0개의 댓글