Post

🌌 React μž…λ¬Έ β…₯ - State

🌌 React μž…λ¬Έ β…₯ - State

πŸ“˜ γ€Žμ†Œν”Œμ˜ 처음 λ§Œλ‚œ λ¦¬μ•‘νŠΈγ€λ₯Ό 읽고 μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€.

Stateλž€?

  • React의 생애주기λ₯Ό μ΄ν•΄ν•˜κΈ° μœ„ν•΄μ„œλŠ” State에 λŒ€ν•΄μ„œ μ•Œμ•„μ•Ό ν•œλ‹€.
  • StateλŠ” React Component의 λ³€κ²½ κ°€λŠ₯ν•œ 데이터이며, Stateκ°€ λ³€κ²½λ˜λ©΄ Componentκ°€ λ‹€μ‹œ λ Œλ”λ§ λœλ‹€.
  • κ·Έλ ‡κΈ° λ•Œλ¬Έμ— Stateλ₯Ό μ •μ˜ν•  λ•ŒλŠ” κΌ­ λ Œλ”λ§μ΄λ‚˜ 데이터 흐름에 μ‚¬μš©λ˜λŠ” κ°’λ§Œ ν¬ν•¨μ‹œμΌœμ•Ό ν•œλ‹€.Β Β 
  • Stateλ₯Ό λ¬΄λΆ„λ³„ν•˜κ²Œ μ •μ˜ν•œλ‹€λ©΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ„±λŠ₯을 μ €ν•˜ μ‹œν‚¬ 수 있기 λ•Œλ¬Έμ΄λ‹€.
  • StateλŠ” λ”°λ‘œ λ³΅μž‘ν•œ ν˜•νƒœκ°€ μžˆλŠ” 게 μ•„λ‹ˆλΌ ν•˜λ‚˜μ˜ Javascript 객체이닀.
1
2
3
4
5
6
7
8
9
class LikeButton extends React.Component {
	constructor(props) {
		super(props);
		
		this.state = {
			liked : false
		};
	}
}
  • Class Component의 경우 μƒνƒœλŠ” μƒμ„±μž μ½”λ“œ 내에 μ •μ˜λ˜μ–΄ μžˆλ‹€.
1
2
3
4
5
6
7
8
9
// 직접 μˆ˜μ •
this.state = {
	name : "kim"
}

// setState ν•¨μˆ˜λ₯Ό 톡해 μˆ˜μ •
this.setState({
	name : "kim"
});
  • StateλŠ” 일반적인 Javascript λ³€μˆ˜λ₯Ό 닀루듯 μˆ˜μ •ν•˜λ©΄ μ•ˆ λœλ‹€.
  • StateλŠ” Component의 λ Œλ”λ§κ³Ό κ΄€λ ¨ 있기 λ•Œλ¬Έμ— λ§ˆμŒλŒ€λ‘œ μˆ˜μ •ν•˜κ²Œ 되면 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ κ°œλ°œμžκ°€ μ˜λ„ν•œ λŒ€λ‘œ λ™μž‘ν•˜μ§€ μ•Šμ„ 수 μžˆλ‹€.
  • Stateλ₯Ό λ³€κ²½ν•˜κ³ μž ν•  λ•Œμ—λŠ” κΌ­ setState() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.

회고

  • λ‚΄μš©μ„ μ •λ¦¬ν•˜λ©° Reactμ—μ„œ 데이터 흐름과 UI λ Œλ”λ§ 방식에 λŒ€ν•œ 이해λ₯Ό ν•  수 μžˆμ—ˆλ‹€.
  • μ§€κΈˆκΉŒμ§€λŠ” ν•„μš”ν•œ 값을 μ „λΆ€ state에 λ„£λŠ” μŠ΅κ΄€μ΄ μžˆμ—ˆλŠ”λ°, κΌ­ λ Œλ”λ§μ— 영ν–₯을 μ£ΌλŠ” κ°’λ§Œ 포함해야 ν•œλ‹€λŠ” κ±Έ 배울 수 μžˆμ—ˆλ‹€.
This post is licensed under CC BY 4.0 by the author.