일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Operating System
- algorithm
- 자료구조
- typeScript
- 컴퓨터공학
- JavaScript
- python algorithm
- react 기초
- node.js
- Computer Science
- codestates
- 파이썬 알고리즘 인터뷰
- useState
- 글또
- Zerobase
- REACT
- java
- Python
- 개발공부
- 비동기
- 코드스테이츠
- 운영체제
- context switching
- execution context
- 프로그래머스
- 자바스크립트
- 알고리즘
- 자바
- 파이썬
- OS
- Today
- Total
Back to the Basics
[React][Codestates]- React State - useState , state Hook 본문
[React][Codestates]- React State - useState , state Hook
9Jaeng 2021. 8. 19. 23:15State
Application에서 Sate란 컴포넌트 내에서 변할 수 없는 값이며 상태는 React State로 다뤄야 한다.
[20100810]- React-State and Lifecycle 공식문서를 보고 state와 props에 대해 정리한 글이다. 참고해보자~!
State hook, useState
Hook이란 무엇일까???
공식 홈페이지에 의하면 Hook은 "React feature를 연결할 수 있는 특수한 함수"라고 한다. React를 다루기 위해 특별히? 사용되는 함수라고 생각하면 될까..??
React에서는 useState라는 특별한 함수를 통해 state를 다룬다. useState는 React Hook중의 하나이며 React state를 추가할 수 있게 해주는 Hook이다.
How to use useState
- useState를 사용하려면 import useState를 불러와야 한다. import {useState} from "react"
- useState 사용은 아래와 같다
const [state 저장 변수 , state 갱신 함수] = useState(상태 초기 값);
- 변수로 선언된 state 저장 변수와 state 갱신 함수는 useState의 리턴값을 구조 분해 할당한 변수이다.
- 일반적인 변수와 달리 React에 의해 함수가 끝나도 사라지지 않는다.
- useState를 호출하면 배열을 반환하는데, 배열의 0번째 요소는 현재 state 변수이고, 1번째 요소는 이 변수를 갱신할 수 있는 함수이다.
useState의 인자로 넘겨주는 값은 state의 초기값이다. - 아래의 코드는 공식 홈페이지에 있는 예제를 사용하였다.
function Example() {
// Declare a new state variable, which we'll call "count"
const [count, setCount] = useState(0);
위의 코드에서 count는 state를 저장하는 변수이고, setCount는 count를 변경하는 함수이다. useState의 괄호 안의 0 은 state의 초기값이다.
State 갱신하기
state를 갱신하려면 state를 갱신하는 함수를 호출해야 한다.
아래의 코드로 보면 다음과 같다.
Check Box 값을 변경 --> OnChange 이벤트 핸들러 함수인 handleChecked 호출 --> setChecked 호출 --> isChecked 변수 갱신 --> React는 해로운 isChecked 변수를 CheckboxExample 컴포넌트에 넘겨 해당 컴포넌츠를 다시 렌더링 한다.
const CheckboxExample=()=>{
{/* state를 저장 할 변수와 state를 갱신 할 함수 */}
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 ? "Checked!" : "Unchecked"}</span>
</div>
)
}
주의사항!!
React state는 꼭 상태 변경 함수 호출로 변경해야 한다.!!
강제로 변경을 시도하면 리 렌더링이 되지 않거나 state가 제대로 변경되지 않는다.
ex ) state.push(1) , state [0]=1; 등..
'Frontend Development > React' 카테고리의 다른 글
[React][Codestates] React Twittler state & props - Bare Minimum (0) | 2021.08.31 |
---|---|
[React]React Event Handling (0) | 2021.08.20 |
[React][Codestates] React State & Props , props.children (0) | 2021.08.19 |
[React][Codestates]- React Twittler Intro - Advanced (0) | 2021.08.19 |
[React][Codestates] React SPA & Router (0) | 2021.08.12 |