Post

๐ŸŒŒ React ์ž…๋ฌธ 06 - State

๐ŸŒŒ React ์ž…๋ฌธ 06 - 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.