
알고있으면 좋은 React Tip✨
state란?
- 리엑트에서 이벤트에 의해 변경되는 동적인 값이다.
- state는 props와는 달리 하위 컴포넌트도 데이터를 변경할 수 있다.
- 버튼을 클릭하는 onClick 이벤트에 의해 값이 변경된 경우 사용된다.
- 함수형 컴포넌트는 'useState'라는 Hook 을 사용하여 state를 다룰 수 있다.
(1)함수형 컴포넌트에서 useState 사용하기
- state 값을 변경할 때는 반드시 setState를 사용하여 변경해야한다.
- setState를 사용한 경우, state값이 변경되면 useState가 변경을 감지하고, 자식 컴포넌트들까지 리렌더링이 발생한다.
import React, {useState} from 'react';
function StateFunction(){
// msg : 초기값 setMsg : msg를 변경하기 위해 사용하는 함수
const [msg, setMsg] = useState('');
function changeMsg(){
// setState({msg : 메세지})와 같다.
setMsg('메세지');
}
return(
<div>
<div>
StateFunction
<p>{msg}</p>
</div>
<button onClick={changeMsg}>클릭</button>
</div>
);
}
export default StateFunction;
(2)클래스형 컴포넌트에서 state 사용하기
import React, {Component} from 'react';
class StateClass extends Component{
state = {
name : 'SeSAC',
cnt : 0,
list : ['s', 'e', 's', 'a', 'c']
}
render(){
return(
<div>
<div>{this.state.name}StateClass{this.state.cnt}</div>
<button onClick={() => {
// setState : state의 값을 바꾸는 함수
// prevState : 기존 상태
this.setState(prevState => {
return {cnt : prevState.cnt + 1}
});
this.setState(prevState => {
return {cnt : prevState.cnt + 1}
});
}}>클릭</button>
<button onClick={() => {
this.setState({list : ['c', 'l', 'i', 'c', 'k']})
}}>클릭2</button>
<ul>
{this.state.list.map((txt) => {
return <li>{txt}</li>
})}
</ul>
</div>
);
}
}'Study > React' 카테고리의 다른 글
| [React] npm start 시 터미널에 bebel dependencies 오류 메세지 발생하는 경우 (0) | 2023.11.23 |
|---|---|
| [React] Props (0) | 2023.10.16 |
| [React] 컴포넌트(component) (0) | 2023.10.13 |
| [React] 리엑트 설치하기 (0) | 2023.10.13 |