반응형
App.js
import React, { useState } from 'react';
let init = 0;
const App = () => {
console.log('리빌드 됨');
const [num, setNum] = useState(1);
const increase = () => {
setNum(num + 2);
};
const decrease = () => {
setNum(num - 2);
};
const increase2 = () => {
console.log('increase2');
setNum(num + Number(init));
};
const decrease2 = () => {
setNum(num - Number(init));
};
const numHandle = (e) => {
console.log(e);
console.log('numHandle : ' + e.target.value);
init = e.target.value;
};
return (
<div>
<h1>숫자 : {num}</h1>
<button onClick={() => setNum(num + 1)}>+</button>
<button onClick={() => setNum(num - 1)}>-</button>
<hr />
<button onClick={increase}>+</button>
<button onClick={decrease}>-</button>
<hr />
<input type="text" onChange={numHandle} />
<button onClick={increase2}>+</button>
<button onClick={decrease2}>-</button>
</div>
);
};
export default App;
useState를 통해 컴포넌트에서 바뀌는 값을 관리
const [num, setNum] = useState(1);
람다식 함수인
const increase = () => {
setNum(num + 2);
};
그리고 Return
<button onClick={() => setNum(num + 1)}>+</button>
입력 받은 값을 String(문자열이) 아닌 Integer(정수) 값으로 더해줘야 하므로 람다식 함수는
const increase2 = () => {
console.log('increase2');
setNum(num + Number(init));
};
그리고 Text에 입력을 할 수 있도록 numHandle과 e.targer.value
const numHandle = (e) => {
console.log(e);
console.log('numHandle : ' + e.target.value);
init = e.target.value;
};
※ 가장 중요한 useState가 바뀌는 값이 화면으로 받아올 수 없기 때문에
let init = 0; 을 최상단으로 옮겨주어야 한다.
반응형
'Front-End > React' 카테고리의 다른 글
[React] 리액트 redux 예제를 통해 알아보기 (0) | 2021.06.20 |
---|---|
[React] 리액트 코드분할 이유 및 예제 (0) | 2021.06.19 |
[React] 리액트 JSX 문법정리 및 const, let, var 차이를 알아보자 (0) | 2021.06.16 |
[React] 리액트 회원가입 및 로그인 컴포넌트 구성 (0) | 2021.06.16 |
[React] 리액트 설치방법 및 사용방법을 알아보자 (0) | 2021.06.14 |