일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- chart.js
- 퍼블리싱
- windowwidth
- react
- 2020
- 포트폴리오
- 대표님물리기없기
- 언젠간가겠지
- 클래스 토글
- 안짤렸다
- 간식금지다!
- resize
- classList
- 커스텀훅
- ROUTER 버전6
- className
- chart responsive
- 내배위의고양이
- 리엑트할수있는퍼블리셔라규
- classList add
- classList toggle
- 접근성
- 를
- react-router
- classList remove
- react-router-dom
- 방심은금물
- 냥빨이다가온다
Archives
- Today
- Total
틈
[React] useState 본문
동적인 변화
import React, { useState } from "react";
function Counter(){
/* useState ()안의 값은 초기값.
* 비구조화 할당을 통해 number값과 setNumber(함수) 값을 추출한다 */
const [number, setNumber] = useState(0);
const style = { padding:20 }
const onIncrease = () => {
setNumber(number+1);
}
const onDecrease = () => {
setNumber(number-1);
}
return (
<div style={style}>
<h1>{number}</h1>
{/* onclick을 camel형식으로 바꿔줘야 함.
* 함수를 사용할 때 ()를 붙이 경우, mount 되는 시점에 실행한다.
*/}
<button onClick={onIncrease}>+1</button>
<button onClick={onDecrease}>-1</button>
</div>
)
}
export default Counter;
input 상태관리
import React, {useState} from 'react';
function InputSample(){
const [text, setText] = useState('');
const onReset = () => {
setText('');
}
const onChange = (e) => {
setText(e.target.value);
}
return (
<div>
<input onChange={onChange} value={text} />
<button onClick={onReset}>초기화</button>
<div>
<b>값 : </b>
{text}
</div>
</div>
)
}
export default InputSample;
2개 이상의 input 상태를 관리할 때
function InputSample(){
const style={padding:40};
const [ inputs, setInputs ] = useState({
name : '',
nickname : '',
});
const { name, nickname } = inputs;
const onChange = (e) => {
console.log(e.target.name);
console.log(e.target.value);
const { name, value } = e.target;
setInputs({
/* 객체 상태는 복사해서 넣어주어야 함.
* '불변성을 지킨다'
* 리엑트 컴포넌트에서 상태가 업데이트 됐음을 감지할 수 있음
* 필요한 렌더링이 일어날 수 있음 */
...inputs,
[name] : value,
})
}
const onReset = () => {
setInputs({
name:'',
nickname : '',
})
}
return (
<div style={style}>
<input placeholder="이름" name="name" onChange={onChange} value={name} />
<input placeholder="닉네임" name="nickname" onChange={onChange} value={nickname} />
<button onClick={onReset}>초기화</button>
<div>
<b>값 : </b>
{name} ({nickname})
</div>
</div>
)
}
export default InputSample;
'code > React.js' 카테고리의 다른 글
[React] React 내의 배열 렌더링 하기 (0) | 2021.12.08 |
---|---|
[React] useRef (0) | 2021.12.05 |
[React] props / props children (0) | 2021.12.05 |
JSX 기본규칙 (0) | 2021.11.30 |
React.js 시작 (0) | 2021.11.30 |
Comments