Front end/React

[ React 기초 ] State 알아보기

2023. 3. 27. 14:35
목차
  1. State 알아보기
  2. State 란 ?
  3. State hook, useState
  4. useState 사용
  5. state 갱신
  6. 주의 사항

State 알아보기


State 란 ?

  • 컴포넌트 내부에서 변할 수 있는 값
  • 애플리케이션의 상태라고 할 수 있다.
    쇼핑몰 장바구니를 예시로 들어보면, 장바구니내에서 체크 된 상태와 체크 되지 않은 상태로 상태를 구분할 수 있다.

State hook, useState

  •  useState는 React에서 state를 다루는 방법 중 하나이다.

useState 사용

1. 사용 할 파일내에서 react에서 useState를 import 해야 한다.

import { useState } from "react";

 

2. 컴포넌트 안에서 useState 호출

 

1. 수도 코드

const [state 저장 변수, state 갱신 함수] = useState(상태 초기 값);

2. 문법 예시

function CheckboxExample() {
  const [isChecked, setIsChecked] = useState(false);
}

isChecked : state를 저장하는 변수
setIsChecked : state isChecked 를 변경하는 함수
useState : state hook
false : state 초기값
  • isChecked, setIsChecked는 useState 리턴 값을 구조 분해 할당한 변수이다.
  • 새로운 state 변수를 선언, 배열 안에 변수 이름은 아무 이름으로도 가능
  • state 변수는 React에 의해 함수가 끝나도 사라지지 않음

 

위 코드를 풀어서 쓰면 아래 코드와 같음

 const stateHookArray = useState(false); 
  const isChecked = stateHookArray[0];
  const setIsChecked = stateHookArray[1];

 

state 갱신

import React, { useState } from "react";

function CheckboxExample() {
  const [isChecked, setIsChecked] = useState(false);

  const handleChecked = (event) => {
    setIsChecked(event.target.checked);
  };
  return (
    <div className="App">
      <input type="checkbox" checked={isChecked} onChange={handleChecked} />
      <span>{isChecked ? 'Myossi Bye !!' : "Myossi Hi !!"}</span>
    </div>
  );
}

export default CheckboxExample;

간단 설명

  • 핵심 : state를 갱신하려면 state 변수(isChecked)를 갱신할 수 잇는 함수인  setIsChecked를 호출해야 한다.
  •  CheckboxExample 컴포넌트에서  input 체크 박스를 만들어서 isChecked 값 변경에 따라 브라우저에서 보이는 글자가 바뀌고 있는 것을 알  수 있다.

 

풀어서 보자

 

useState로  isChecked 변수에 초기값으로 false를 주고 있는 code

  const [isChecked, setIsChecked] = useState(false);

체크 박스를 만들고 checked에 isChecked를 주면 브라우저에는 체크박스에 체크가 안된 상태로 보이게 된다.

체크 박스의 값이 변경 되면 onChange 이벤트를 발생시키고 handleChecked 함수가 작동 된다.

 <input type="checkbox" checked={isChecked} onChange={handleChecked} />

체크 박스의 값이 변경 되면 onChange 이벤트를 발생시키고 handleChecked 함수가 작동 된다.

setIsChecked 함수에 체크 결과 값을 넣어서 isChecked 변수를 갱신한다.

const handleChecked = (event) => {
    setIsChecked(event.target.checked);
  };

span 태그 안에 삼항 연산자를 통해 isChecked 값에 따라
체크가 되있다면 'Myossi Bye !!' ,
체크가 안되어있다면  "Myossi Hi !!"를 브라우저에 출력한다.

<span>{isChecked ? 'Myossi Bye !!' : "Myossi Hi !!"}</span>

 

주의 사항

  • React state는 강제로 변경을 시도하면 안되고 상태 변경 함수 호출로 변경해야 함
  • 강제로 변경을 시도하면 리렌더링 및 state변경이 되지 않는다.
예시 : state.push(1);, state[1] = 2;, state = 'wrong state';

'Front end > React' 카테고리의 다른 글

[ React ] 데이터 흐름 / state 끌어올리기 알아보기  (0) 2023.04.02
[ React 기초 ] Props 알아보기  (0) 2023.03.27
[ React 기초 ] Router 알아보기  (0) 2023.03.23
[ React 기초 ] React SPA 알아보기  (0) 2023.03.23
[ React 기초 ] React JSX 알아보기  (0) 2023.03.22
  1. State 알아보기
  2. State 란 ?
  3. State hook, useState
  4. useState 사용
  5. state 갱신
  6. 주의 사항
'Front end/React' 카테고리의 다른 글
  • [ React ] 데이터 흐름 / state 끌어올리기 알아보기
  • [ React 기초 ] Props 알아보기
  • [ React 기초 ] Router 알아보기
  • [ React 기초 ] React SPA 알아보기
_moda
_moda
프론트엔드 개발 공부를 하고 있읍니다.
_moda
ModaLog
_moda
전체
오늘
어제
  • All Records
    • 취업 준비
    • TIL
    • Front end
      • HTML \ CSS
      • JavaScript
      • TypeScript
      • React
      • GIT
      • Node.js
      • 개발 지식
      • 면접 질문 공부
    • Boot Camp
      • code states
      • Project
    • 자료구조 \ 알고리즘 기법
    • Coplit
    • Programmers
    • 모다딥 공부 정리
    • 정보처리기능사

블로그 메뉴

  • 태그
  • 방명록

공지사항

  • 개발자로 가는 길

인기 글

태그

  • javascript
  • 네트워크 기초
  • react
  • 타입스크립트
  • CODE STATES
  • til
  • Coplit
  • typescript
  • 코드스테이츠
  • 모던 자바스크립트 딥 다이브

최근 댓글

최근 글

hELLO · Designed By 정상우.
_moda
[ React 기초 ] State 알아보기
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.