개발하는 사막여우
개발하는 사막여우
개발하는 사막여우
전체 방문자
오늘
어제
  • All (310)
    • Books (13)
      • 읽기 좋은 코드가 좋은 코드다 (13)
    • Study (6)
      • Blockchain (3)
      • Algorithm (3)
    • Baekjoon (36)
    • Programmers (166)
    • LeetCode (15)
    • Open Source (1)
      • Youtube Popout Player (1)
    • Language (32)
      • Python (9)
      • JS (8)
      • Java (5)
      • HTML (6)
      • CSS (4)
    • Library & Framework (15)
      • React.js (15)
    • IDE (2)
      • IntelliJ (2)
    • Airdrop (9)
    • Tistory (2)
    • etc.. (12)
      • Cozubi (6)
      • lol-chess (0)

블로그 메뉴

  • Github

공지사항

인기 글

태그

  • 프로그래머스 위클리 챌린지
  • 코주비
  • Java
  • 카카오 코딩테스트
  • 클린 코드 작성법
  • programmers
  • 신규 코인 에어드랍
  • 2018 KAKAO BLIND RECRUITMENT
  • 읽기 좋은 코드가 좋은 코드다
  • 코딩테스트연습
  • Python
  • 백준
  • 알고리즘문제풀이
  • 카카오 공채
  • 카카오 알고리즘 문제
  • 파이썬
  • 프로그래머스
  • 코인줍줍
  • Cozubi
  • 클린 코드

최근 댓글

최근 글

티스토리

반응형
hELLO · Designed By 정상우.
개발하는 사막여우

개발하는 사막여우

[React.js] setState() / state 값 갱신
Library & Framework/React.js

[React.js] setState() / state 값 갱신

2021. 2. 24. 18:06
반응형

setState는 이미 존재하는 state를 바꿔주는 역할을 하는 함수이다.

왜 state를 변경할때는 setState를 해야하는가?

더하기 빼기를 해주는 간단한 원리를 구현 할 때, state를 직접 조작하는 경우 다음과 같이 실행된다.

여기서 빨간색 네모를 보면 경고가 발생한 것을 알 수 있는데, state를 직접 변경하지 말라는 뜻이다.

이게 왜 뜨냐면, state를 단순히 바꾼다고 해서 렌더링이 다시 되지는 않기 때문이다.

즉, state의 값을 그냥 바꿔주어도, 렌더링이 다시 되지는 않으니, 웹의 값이 바뀌지는 않게 되는 것이다.

 

따라서 state의 값을 변경하고 싶을 때는 setState()함수를 이용하여 값을 바꿔주어야한다.

setState() 사용 1

 

위와 같이 setState를 사용하게 되면, state를 바꿔줄 수 있다.

다만 여기서 명심해야 하는 것은, setState가 state내의 어떤 값을 바꿔주는 것이 아니라 state를 통째로 바꾸는 것이다.

자동차 부품을 교체하듯, 아예 state부분을 갈아낀다고 생각하면 쉬울 것 같다.

따라서 함수 내에 들어가야하는 매개변수는 새로운 state 그 자체 이다. 

다만 위와 같이 state에 접근하는 방식은 성능 저하를 일으킬 수 있다고 하니, 아래와 같은 방식으로 구현해야한다.

setState() 사용 2

보면, this.setState() 내에서 current => ({count: current.count+1)} 과 같은 방식으로 사용해주었다. 

정확히 둘의 성능차이가 어떤지는 아직 잘 모르지만, 일단 따라가 보아야 할 것 같다.

 

반응형
저작자표시 (새창열림)

'Library & Framework > React.js' 카테고리의 다른 글

[React.js] async / await 비동기 사용법  (0) 2021.02.25
[React.js] 컴포넌트 생명주기  (0) 2021.02.25
[React.js] React application 새로 만들기 / react app 새로 만들기  (0) 2021.02.24
[React.js] Warning: Each child in a list should have a unique "key" prop. 경고 문구 없애기  (0) 2021.02.24
[React.js] 리액트 반복문 map() 함수  (0) 2021.02.24
    'Library & Framework/React.js' 카테고리의 다른 글
    • [React.js] async / await 비동기 사용법
    • [React.js] 컴포넌트 생명주기
    • [React.js] React application 새로 만들기 / react app 새로 만들기
    • [React.js] Warning: Each child in a list should have a unique "key" prop. 경고 문구 없애기
    개발하는 사막여우
    개발하는 사막여우
    개발개발 주저리주저리

    티스토리툴바