본문 바로가기
React js

react useState()

by 갈잃자 2022. 9. 15.

React를 사용하는 가장 큰 이유중 하나이다.

 

useState()함수를 사용하여, 하나의 인자와, 그 인자를 변형시켜 줄 함수를 선언받을 수 있다.

 

예를 들어 살펴보면

 

const data = React.useState()
console.log(data)

위 코드를 클라이언트에서 생성시킨 후 console.log(data)를 찍어보면,

(2) [undefined, ƒ]
// 이에 undifined는 data이고, f는 data를 바꿀때 사용하는 function임

위와 같은 [undifined, f]가 나온다

undifined는 우리가 선언시킬 인자이고, f는 그 선언된 인자를 변형시킬 함수의 자리이다.

 

위 값들을 data[0], data[1]이렇게 불러올 수도 있지만, 가시성도 떨어지고 비효율적이다.

 

그래서 초기에 인자의 변수를 잡아두고 시작한다.

const [counter, modifier] = React.useState(0);//여기서 0은 default값

 

이를 가벼운 예제를 통해 살펴보자면

const [counter, modifier] = React.useState(0);
        function onClick() {
            modifier(999)
        }
        console.log(counter)

		return (
        
        <div>
        <h3>Total clicks: {counter}</h3>
        <button onClick={onClick}>Click me</button>
        </div>  
        )
//onclick이란 함수가 적용되면, modifier() 함수의 인자로 counter가 변화하게 됨

//console.log 값을 보면 counter = 0 이였다가, button을 누르면 counter가 999가 되는걸 확인 할 수 있음

 

조금 더 안전하게 값을 바꿔주기 위해선 modifier()함수 내 에 하나의 함수를 더 적용하면된다

//기존
modifier(999);

setCounter((current) => 999)

// 위와 아래는 동일한 동작을 하는데, 아래와 같은 방법을 선호하는 이유는, 혹시 모를 다른 함수로 인한 값의 변환을 막아 안전하기 때문이다.
// 또 현재의 값을 인자로 지닐 수 있기 때문에 변화에 덜 민감하다

 

useState()를 사용하는 가장 큰 이유는

  • eventListener, selectquery, rerender를 하지 않고, 매 순간 원하는 부분을 렌더링 시킬 수 있는 함수가 짜여진다.
  • render를 하는 함수를 따로 짜지 않아도 되는 이유는 useState에 있는 modifier함수가 state를 변경할 때 컴포넌트를 재생성하고 새로운 값으로 rerender하는 것이기 때문!

'React js' 카테고리의 다른 글

JSX  (0) 2022.12.28

댓글