state란 컴포넌트 내부에서 바뀔 수 있는 값을 의미합니다
import React, {component} from 'react';
class Counter extends Component {
constructor(props) {
super(props);
this.state = {
number : 0
}
}
render() {
const { number } = this.state;
return (
<div>
<p>count : {number}</p>
<button onClick={()=>{this.setState({number : number + 1})}}>+ 1</button>
</div>
)
}
}
export default Counter;
// constructor 를 선언하지 않고도 초기 state를 설정 할 수 있습니다
class Counter extends Component {
this.state = {
number : 0
}
render() {
const { number } = this.state;
return (
<div>
<p>count : {number}</p>
<button onClick={()=>{this.setState({number : number + 1})}}>+ 1</button>
</div>
)
}
}
<button onClick={()=>{
this.setState(
{number : number + 1},
() => {
console.log('방금 setState가 호출 되었습니다')
}
)
}}>+ 1</button>
v16.8 이후 useState 라는 함수를 통해 함수형 컴포넌트에서도 state를 사용 할 수 있습니다
import React, {useState} from 'react';
const Say = () => {
const [message, setMessage] = useState('');
}
message
는 현재 상태, 두번째 요소 setMessage
는 상태를 바꾸어주는 함수 (위 코드 예시)setState()
-클래스형 , useState()
- 함수형의 setter 함수를 사용해야합니다