Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- openapi3
- cloud native
- Pender
- SpringRESTDocs
- vue
- axios
- tasklet
- JavaScript
- stopPropogation
- Spring REST Docs
- MSA
- OpenStack
- SWAGGER
- Crawling
- SpringBoot
- vuejs
- cheerio
- Filter
- Flyway
- Reduxpender
- AuthenticatoinProvide
- MFA
- T-OTP
- Spring Security
- 리액트
- REACT
- gradle
- UsernamePasswordAuthenticationFilter
- Spring Batch
- preventdefault
Archives
- Today
- Total
Miracle Morning, LHWN
5. 바뀌는 값을 관리해주는 useState 본문
# 참고로 리액트 16.8 이전 버전에서 함수형 컴포넌트에서는 상태를 관리할 수 없었는데,
리액트 16.8 에서 Hooks라는 기능이 도입되면서 함수형 컴포넌트에서도 상태를 관리할 수 있게 되었다.
# useState도 이 Hooks 중 하나!
# 리액트에서 엘리먼트에 이벤트를 설정해줄 때 onClick={onIncreate} 처럼 설정을 해주는데,
이때 함수형태를 넣어주어야 하지, 함수를 실행하면 안된다.
onClick={onIncrease} (O)
onClick={onIncrease()} (X) → 렌더링을 하는 과정에서 함수가 호출되어버리기 때문
# 컴포넌트에서 동적인 값을 '상태(state)'라고 한다.
import React, { useState } from 'react';
function Counter() {
const [number, setNumber] = useState(0);
const onIncrease = () => {
setNumber(number+1);
}
const onDecrease = () => {
setNumber(number-1);
}
return (
<div>
<h1>{number}</h1>
<button onClick={onIncrease}>+1</button>
<button onClick={onDecrease}>-1</button>
</div>
);
}
export default Counter;
아래 코드 부분에서 기본 값을 파라미터에 넣어서 호출해주면 된다.
const [number, setNumber] = useState(0);
원래 이 함수를 호출했을 때 반환되는 값은 배열인데, 비구조화 할당을 통해 각 원소를 추출해준 것!
const numberState = useState(0);
const number = numberState[0]; // 첫 번째 원소는 현재 상태
const setNumber = numberState[1]; // 두 번째 원소는 Setter 함수
Setter 함수인 setNumber 함수는 파라미터로 전달받은 값을 최신 상태로 설정해준다.
근데 setNumber(number+1) 처럼 값을 그냥 파라미터로 넣어주는 것보다, 최적화된 방법은 값을 업데이트하는 함수를 파라미터로 넣어주는 것.
(함수형 업데이트)
import React, { useState } from 'react';
function Counter() {
const [number, setNumber] = useState(0);
const onIncrease = () => {
setNumber(prevNumber => prevNumber + 1);
}
const onDecrease = () => {
setNumber(prevNumber => prevNumber - 1);
}
출처 : https://react.vlpt.us/basic/07-useState.html
'IT 기술 > [React] 기본' 카테고리의 다른 글
7. 이번에는 useState로 여러 개의 <input> 상태 값 관리해보기 (0) | 2021.05.24 |
---|---|
6. useState를 이용해서 <input> 상태 값 관리해보기 (0) | 2021.05.24 |
4. 조건에 따라 다른 컴포넌트를 렌더링하기 (0) | 2021.05.24 |
3. props를 이용해서 컴포넌트한테 값 전달해보기 (0) | 2021.05.24 |
2. JSX가 무엇이며, 기본 규칙은 무엇일까 (0) | 2021.05.24 |
Comments