출처 - 벨로퍼트
https://react.vlpt.us/basic/07-useState.html
이벤트 설정
import React from 'react';
function Counter() {
const onIncrease = () => {
console.log('+1')
}
const onDecrease = () => {
console.log('-1');
}
return (
<div>
<h1>0</h1>
<button onClick={onIncrease}>+1</button>
<button onClick={onDecrease}>-1</button>
</div>
);
}
export default Counter;
함수를 만들고, button 의 onClick
으로 각 함수를 연결해주었습니다. 리액트에서 엘리먼트에 이벤트를 설정해줄때에는 on이벤트이름={실행하고싶은함수}
형태로 설정해주어야 합니다.
여기서 주의하셔야 하는 점은, 함수형태를 넣어주어야 하지, 함수를 다음과 같이 실행하시면 안됩니다.
onClick={onIncrease()}
이렇게 하면 렌더링되는 시점에서 함수가 호출되버리기 때문입니다. 이벤트를 설정할때에는 함수타입의 값을 넣어주어야 한다는 것, 주의해주세요.
동적인 값 끼얹기, useState
import React, { useState } from 'react';
이 코드는 리액트 패키지에서 useState
라는 함수를 불러와줍니다.
const [number, setNumber] = useState(0);
useState
를 사용 할 때에는 상태의 기본값을 파라미터로 넣어서 호출해줍니다. 이 함수를 호출해주면 배열이 반환되는데요, 1) 첫번째 원소는 현재 상태 2) 두번째 원소는 Setter 함수
- 배열 비구조화 할당 을 통하여 각 원소를 추출
위 코드를 풀어쓰면 다음과 같다.
const numberState = useState(0);
const number = numberState[0];
const setNumber = numberState[1];
Setter 함수
는 파라미터로 전달 받은 값을 최신상태로 설정해줌
함수형 업데이트
import React, { useState } from 'react';
function Counter() {
const [number, setNumber] = useState(0);
const onIncrease = () => {
setNumber(prevNumber => prevNumber + 1);
}
const onDecrease = () => {
setNumber(prevNumber => prevNumber - 1);
}
return (
<div>
<h1>{number}</h1>
<button onClick={onIncrease}>+1</button>
<button onClick={onDecrease}>-1</button>
</div>
);
}
export default Counter;
반응형
'TIL > 리액트' 카테고리의 다른 글
10. useRef로 특정 DOM 선택하기 (0) | 2022.06.25 |
---|---|
9. 리액트 상태에서 객체 수정 (0) | 2022.06.24 |
8. input 상태 관리하기 (0) | 2022.06.23 |
6. 조건부 렌더링 (0) | 2022.06.23 |
5. props 를 통해 컴포넌트에게 값 전달하기 (0) | 2022.06.23 |
댓글