ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • useState
    React (js, css) 2022. 6. 24. 08:56

    useState는 리액트에 동적인 요소를 추가해주는 함수이다.

    리액트 16.8 이전에는 함수 컴포넌트에서 상태 관리가 불가능했지만, 16.8에서 *Hooks 라는 기능이 도입되며 함수형 컴포넌트에서 상태 변경이 가능해졌다. (useState도 Hooks의 일종)

     

    -> Hooks : React 버전 16.8부터 React 요소로 새로 추가되었으며, 기존 Class 바탕의 코드를 작성할 필요 없이 상태 값과 여러 React의 기능을 사용할 수 있게 해준다.

     

    useState를 배우기 앞서

    state란 상태를 말한다. 예를 들어 시간이라는 컴포넌트가 있으면 현재 시간을 state로 가질 수 있음

     

    useState를 사용하기 위해선 🔽

    import { useState } from 'react'

    이런 식으로 프로젝트 생성 후 import를 해주어야 사용할 수 있다.

     

    1. useState의 형태

    const [state, setState] = useState(초기값);

    의 형태로 사용하며 위와 같이 두 가지 요소의 배열로 사용한다. 첫번째 요소는 현재 상태, 두번째 요소는 settle 함수를 난타내며, 첫번째 변수 앞에 set을 붙여 표현한다. 그리고 보다시피 state에는 useState(초기값) ←이 들어간다.

     

    2. 변수 재선언

    useState(3); //state 값을 3으로 바꿔줌

    변수에 값을 넣기 위해선 간단히 함수 인자에 값을 넣어 바꿔줄 수 있다.

     

    3. 간단한 예제

    useState를 사용할 때 가장 많이 쓰이는 예제인 버튼을 누르면 숫자가 바뀌는 Counter 컴포넌트를 만들며 이해해보자!

     

    //Counter.js
    import React, { useState } from 'react'; // react 패키지에서 useState 함수를 불러옴
    
    function Counter() {
      const [number, setNumber] = useState(0); // 초기값을 0으로 설정
    
      const onIncrease = () => {
        setNumber(prevNumber => prevNumber + 1);
      }
    
      const onDecrease = () => {
        setNumber(prevNumber => prevNumber - 1);
      }
    
      return (
        <div>
          <h1>{number}</h1>
          <button onClick={onIncrease}>+1</button>
          <button onClick={onDecrease}>-1</button>
        </div>
      );
    }
    
    export default Counter;
    //App.js
    import React from 'react';
    import Counter from './Counter';
    
    function App(){
    	return(<Counter />);
    }
    
    export default App;

    위 Counter.js에서

    import React, { useState } from 'react';

    를 통해 리액트 패키지에서 useState를 불러온다.

     const [number, setNumber] = useState(0);

    number라는 state에 0을 넣어주고, 후에 setNumber를 통해 값을 바꿀 수 있다. Counter.js에서도 화살표 함수 내부에서 setNumber(prevNumber => preNumber + 1)을 통해 값을 바꿔주고 있음

    <h1>{number}</h1>을 통해 화면에 렌더링 된다.

     

     

    + prevNumber가 갑자기 왜 나오는지 이해 안 되면 🔽 이거 보면 될 듯

    prevNumber 설명

    'React (js, css)' 카테고리의 다른 글

    과제 (1)  (0) 2022.06.25
    git으로 pages 배포해보기!!  (0) 2022.06.25
    Arrow function  (0) 2022.06.16
    React-router-dom  (2) 2022.06.03
Designed by Tistory.