UseState

useState가 바로 Hook 이다. Hook을 호출해 함수 컴포넌트(function component) 안에 count state를 추가했다. 이 state는 컴포넌트가 다시 렌더링 되어도 그대로 유지될 것이다. useState는 현재의 state 값(count)과 이 값을 업데이트하는 함수(setCount)를 쌍으로 제공한다. useState는 인자로 초기 state 값을 받는다. 아래 예제에서는 count state 초기 값으로 0을 설정하였다.

import React, { useState } from "react";

function Example() {
  // "count"라는 새 상태 변수를 선언한다.
  const [count, setCount] = useState(0);
  const up = () => setCount(count + 1);
  const down = () => setCount(count - 1);
  return (
    <div>
      <p>You clicked {count} times</p>
      <button onClick={up}>Click Up!</button>
      <button onClick={down}>Click Down!</button>
    </div>
  );
}
class App extends React.Component {
  state = {
    item: 1,
  };
  render() {
    const { item } = this.state;
    return (
      <div className="App">
        <button onClick={Up}>Increment</button>
        <button onClick={Down}>Decrement</button>
      </div>
    );
  }
  Up = () => {
    this.setState((state) => {
      return {
        item: state.item + 1,
      };
    });
  };
  Down = () => {
    this.setState((state) => {
      return {
        item: state.item - 1,
      };
    });
  };
}

위의 코드가 Hooks로 짠것 밑이 class로 짠것이다. Hooks가 훨씬 코드가 짧은것을 알수있다!