본문 바로가기

javaScript

[React] React State?

State는 리액트에서 상태 값이다

유동적인 데이터를 주고받을 수 있는 상태 값을 말한다

class형 State가 있고

function형 State가 있다

 

function형 State인 useState()를 예제를 통해 알아본다

 

React CRA를 Load 한 App.js

import './App.css';
import { useState } from 'react';

function App() {
  // useState();
  const [state, setState] = useState();

  return (
    <div className="App">
      <h1>hello, react</h1>

    </div>
  );
}

export default App;

function형에서 State는 useState()를 사용한다

 

1.  useState() 사용하려면 먼저 import 해와야 한다

2.  const나 유동적으로 변경되는 데이터라면 let 변수를 통해 useState() 만든다

3.  [state, setState] 여기는 state = 본래 변수 이름, setState는 데이터를 변경할 때 사용할 변수 이름이라고 생각하면 된다

// useState();
  const [title, setTitle] = useState('Hello, React!!!');

useState의 값으로 나는 "Hello, React!!!"라는 문자열을 담아봤다

State안에 들어간 문자열은 데이터가 되어 내가 사용하고 싶을 때 호출하고 사용할 수 있다

들어갈 수 있는 데이터는 Array, Object, bool, Number 등등 대부분 다 들어간다

function App() {
  // useState();
  const [title, setTitle] = useState('Hello, React!!!');

  return (
    <div className="App">
      <h1>{title}</h1>

    </div>
  );
}

앞서 JSX에서는 JS문법을 사용하기가 힘들기 때문에 호출하고 브라우저에 띄울 때

{} 중괄호를 이용한다고 했다

중괄호를 이용해 title를 h1태그에 넣어보면

Hello, React!!! h1태그로 잘 나온 것을 확인할 수 있다

console.log()를 통해 문자열이 데이터로 잘 들어와 있는지 확인도 해보자

// useState();
  const [title, setTitle] = useState(console.log('Hello, React!!!'));

State안에 진짜 별에 별거 다 넣을 수 있나 보네ㅋ

이렇게 사용하는 건 좀 별로다

이렇게 State를 가지고 개발자에 따라 사용하는 상황이 전부 다르다 보니 State의 이해와 숙지를 거의 반강제적으로

해야 할 거 같다

 

카운트 1씩 증가하는 State 만들어 보기

let [count, setCount] = useState(0);

count 숫자를 담을 state를 만들고

 <button onClick={() => {
        setCount(count + 1)
      }}>이거누르면?</button>

버튼도 하나 만들고 버튼 안에 onClick은 javascript와 유사한데

버튼을 클릭하면~ 저 안에 코드 실행시켜줘 라는 것

setCount(count +1)은 아까 state를 변경시키는 변수는 본래 이름이 아니라 setCount라고 지은 두 번째 변수를 사용해야 한다고 했다

그리고 () 괄호 안에 내가 변경할 데이터를 넣어주면 된다

정리하면 버튼을 클릭했을 때 setCount 변경할 거야 count 안에 + 1로 이거다

 

그리고 {} 중괄호를 이용해 확인

<div className="App">
      <h1>{title}</h1>

      {/* count 만들어 보기 */}
      <button onClick={() => {
        setCount(count + 1)
      }}>이거누르면?</button>

      <h1>count : {count}</h1>

    </div>

 이거 말고 버튼을 가지고 스위치 개념으로 UI를 띄워주는 그런 것도 할 수 있고 State의 활용은 다양하다고 볼 수 있다

'javaScript' 카테고리의 다른 글

[React] map()을 통한 반복적인 태그 줄이기  (0) 2022.06.17
[React] useEffect ??  (0) 2022.06.15
[React] .map() 사용 시 key값을 쓰는 이유  (0) 2022.06.11
[React] Component?  (0) 2022.06.09
React ?  (0) 2022.06.08