React

리액트 Hooks: useState

index.ys 2023. 3. 21. 12:09

useState

- 컴포넌트가 가지는 상태

기본구문

const [state, setState] = useState();
  • state: 상태 값을 저장하는 변수
  • setState: 상태값을 갱신하는 함수
  • useState: 상태 초기의 값 useState("괄호안에 숫자나 문자로 초기값을 지정 할 수있다.")

예제1)

const  [time, setTime] = useState(8)
  • useStatef로 time의 초기값을 3로 설정
  • setTime함수를 이용해 변수time의 값을 지정해 변경
  • timeUp 함수를 선언하고 버튼timeup에 onClick이벤트로 timeUp 함수지정 버튼을 누를때마다 time + 1
  • timeDown 함수를 선언하고 버튼timedown에 onClick이벤트로 timeDownn 함수지정 time - 1
  • time state가 변경될때마다 화면에 재렌더링됨
mport React, { useState } from "react";

const App = () => {
  const [time, setTime] = useState(3);

  const timeUp = () => {
    setTime(time + 1);
  };

  const timeDown = () => {
    setTime(time - 1);
  };
  return (
    <div>
      <button onClick={timeUp}>timeup</button>
      <button onClick={timeDown}>timedown</button>
      <span>지금 시간은{time}시입니다</span>
    </div>
  );
};

export default App;

예제2)

- useState의 초기값이 무거운 값(함수의 실행이 많은 계산식)이라면 useState의 인자로 콜백함수를 호출하여 맨처음 렌더링 될때만 렌더링되게 한다.

import React, { useState } from "react";

const 무거운작업 = () =>{
	console.log("무거운 작업 실행")
    return 500
}

function App(){
	const [time, setTime] = useState(()=>{
    	return 무거운작업()
    })

};

요약

  • useState의 초기값이 무거운 함수라면 useState의 인자로 콜백함수를 호출하여 맨 처음 렌더링 될때만 실행하게한다.
  • useState는 컴포넌트의 상태를 관리하는 React Hooks이다.
  • Reat에서 map()함수를 사용하여 출력하기위해 key={} 가 필요하다.
  • 변수state의 값을 변경하려면 함수setState에 변경하는 값을 준다

setState 예시

 const handleInputChange = (e) => {
    setInput(e.target.value);
  };

리액트의 첫 시작이자 기본인 useState Hook에 대해 정리했다 리액트 시작한지 일주일도 되지않아서 리액트 훅스에 대해 이해가 조금 덜 됐지만 반복학습하여 리액트에 대한 이해도를 높여야겠다.