React

React 활용 예시(useState)

goshek 2024. 8. 28. 10:11
import React, { useState } from 'react'

//! Hooks
// : 리액트 "함수형 컴포넌트"에서 사용할 수 있는 기능
// : use- 키워드로 시작
// >> '여기서 해당 기능을 사용한다.'

// EX) useState: 상태기능을 여기서 사용한다.
// EX) useEffect: 부수효과기능을 여기서 사용한다.

/*
! useState
: React에서 제공하는 Hook 중 하나
: 함수형 '컴포넌트' 내에서 상태를 관리하는 기능
  (컴포넌트 단위에서의 상태 관리)

: useState 훅 호출 시
  >> 변화되는 상태값과 해당 상태값을 업데이트하는 함수를 제공
  >> 상태 업데이트 함수는 비동기적 처리가 기본으로 진행
  >> 상태 변경 시 컴포넌트의 재렌더링을 유발
*/

export default function UseState01() {
  //! useState의 기본 구문
  // const [state, setState] = useState<type>(initialValue);

  // - state: 현재의 상태값(변수)
  // - setState: 상태를 업데이트 하는 함수(함수)
  //   >> 관례상 'set + 현재 상태값'으로 명명
  // - initialValue: 상태의 초기값

  // >> hook은 React 내부의 함수이기 때문에 import 해서 사용

  // +) 상태의 타입 정의는 useState 키워드 뒤에 제네릭으로 상태값의 타입 지정

  const [count, setCount] = useState<number>(0);
  const [message, setMessage] = useState<string>('안녕하세요');

  const handleUpClick = () => {
    // 상태(count)를 1 증가
    // setCount 내의 값이 count 변수에 할당
    // >> 해당 값은 연산식으로도 작성 가능

    // 1) 상태 설정 함수를 그대로 사용
    // >> 이전의 상태를 직접 참조
    //   ! 주로 현재(이전) 값과 관련없는 변화가 이루어질 경우 사용!
    // setCount(count + 1); // 0 + 1
    // setCount(count + 1); // 0 + 1

    // 2) 함수형 업데이트를 사용
    // >> 이전 상태 값을 기반으로 상태를 업데이트 하는 경우 (권장)
    setCount(prevCount => prevCount + 1 ); // 0 + 1
    setCount(prevCount => prevCount + 1 ); // 1 + 1
    setCount(prevCount => prevCount + 1 ); // 2 + 1
  }

  const handleDownClick = () => {
    setCount(prevCount => prevCount - 1);
  }

  return (
    <div>
      <p style={{ color: 'blue' }}>useState 최신 상태 관리</p>
     
      <p>You clicked {count} times</p>
      <button onClick={handleUpClick}>카운트를 증가시킵니다.</button>
      <button onClick={handleDownClick}>카운트를 감소시킵니다.</button>
    </div>
  )
}

'React' 카테고리의 다른 글

React 활용 예시(UseState03)  (0) 2024.08.28
React 활용 예시(UseState02)  (0) 2024.08.28
React 활용 예시(Handler02)  (0) 2024.08.28
React 활용 예시(Handler01)  (0) 2024.08.28
React 활용 예시(Rendering02)  (0) 2024.08.27