state는 바뀔 수 있는 값.
props는 부모 컴포넌트가 설정, 읽기 전용
class Counter extends Component {
constructor(props) {
super(props);
this.state = {
number: 0,
};
}
render() {
const { number } = this.state;
return (
<>
<div>{number}</div>
<button
onClick={() => {
this.setState({ number: number + 1 });
}}
>
plus
</button>
</>
);
}
}
constructor(props) {
super(props);
this.state = {
number: 0,
};
}
super(props)를 호출this.state로 state 조회this.setState를 사용회 새로운 값 삽입 가능class Counter extends Component {
state = {
number: 0,
fixedNum: 0,
};
render() {
...
}
}
this.setState({ number: number + 1 });를 두 번 호출해도 1씩 더해짐
상태가 비동기적으로 업데이트됨
어떤 작업을 요청했을 때 그 작업이 종료될때 까지 기다린 후 다음 작업을 수행하는 방식
어떤 작업을 요청했을 때 그 작업이 종료될때 까지 기다리지 않고 다른 작업을 하고 있다가, 요청했던 작업이 종료되면 그에 대한 추가 작업을 수행하는 방식
출처 https://velog.io/@emawlrdl/%EB%8F%99%EA%B8%B0%EC%A0%81-vs-%EB%B9%84%EB%8F%99%EA%B8%B0%EC%A0%81
this.setState((prevState,props) => {
업데이트할 내용
});
this.setState((prevState) => {
return {
number: prevState.number + 1,
};
});
this.setState((prevState) => ({
number: prevState.number + 1,
}));
값을 업데이트하고 난 다음 특정 작업을 하고 싶을 때 setState의 두번째 파라미터로 콜백 함수를 등록하여 작업 처리 가능
this.setState(
{number : number +1},
()=>{console.log("두번째인자"}
);
오 이제 잘 아는 부분 ㅎㅎㅎㅎ
리액트 Hooks를 사용하여 useState사용
ㅎㅎ이제 이것도 알징
const array = [1,2];
const one = array[0];
const two = array[1];
이것을 배열 비구조화 할당해서
const [one,two] = array;
이렇게~
ㅇㅋㅇㅋ 이해 완료 그럼 적용 ㄱ ㄱ
const [message, setMessage] = useState('');