IT/development

[React.js] state ์‚ฌ์šฉ๋ฒ•

์•Œ ์ˆ˜ ์—†๋Š” ์‚ฌ์šฉ์ž 2023. 7. 13.

state ๐Ÿ˜

constructor(props)๋ฅผ ํ†ตํ•ด์„œ ์ดˆ๊ธฐํ™”, ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ

constructor() {} ์•ˆ์—์„œ ๋ฐ˜๋“œ์‹œ super(props)๋ฅผ ํ†ตํ•ด ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์˜ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•ด์•ผํ•œ๋‹ค.

์•ˆํ•˜๋ฉด ์—๋Ÿฌ ๋ฐœ์ƒ

๋ Œ๋”๋ง ์ดํ›„ ๊ฐ’ ์ˆ˜์ •ํ•˜๋ ค๋ฉด this.state = "๋ณ€๊ฒฝํ•  ๊ฐ’" ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ์ ˆ๋Œ€ ์•ˆ๋˜๊ณ  setState() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ์ˆ˜์ •

์œ„์—์„œ ๋งŒ๋“  Counter Component์— constructor()๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ ์ดˆ๊ธฐํ™”, super(props)๋ฅผ ํ†ตํ•ด์„œ

๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์˜ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•œ ๋‹ค์Œ this.state = {...}์— ์ดˆ๊ธฐํ™”ํ•  ๊ฐ์ฒด๋ฅผ ์„ ์–ธ

๊ทธ๋ฆฌ๊ณ  ํ•ธ๋“ค๋Ÿฌ์—์„œ this๊ฐ€ ๋ฌด์—‡์„ ๋‚˜ํƒ€๋‚ด๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ์ƒ์„ฑ์ž์—์„œ ์•„๋ž˜์ฒ˜๋Ÿผ change ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜„์žฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฐ”์ธ๋”ฉํ•œ ํ•จ์ˆ˜๋กœ ์ˆ˜์ •ํ•ด์•ผ ํ•จ

this.change = this.change.bind(this);

์œ„์˜ ์ฝ”๋“œ๋Š” ์ƒ์„ฑ์ž์—์„œ state๊ฐ’์˜ id์˜ ์ดˆ๊ธฐ๊ฐ’์„ "Iron Man"์œผ๋กœ ์„ค์ •ํ•œ ๋‹ค์Œ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ์•„์ด๋””๊ฐ’์„ 

setState๋ฅผ ํ†ตํ•ด "lsy"๋กœ ์ˆ˜์ •ํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ์ž„

๋งŒ๋“  ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ตœ์ข…์ ์œผ๋กœ ํ™”๋ฉด์— ๋ Œ๋”๋ง ํ•˜๊ธฐ ์œ„ํ•ด์„œ ReactDOM.render() ์‚ฌ์šฉ

ReactDOM.render()์˜ 1๋ฒˆ ์งธ parameter๋Š” ๋ Œ๋”๋งํ•  component, 2๋ฒˆ ์งธ parameter๋Š” ๋ Œ๋”๋งํ•  element(div id="root")

๋ณต๊ธฐํ•˜๋Š” ์ฐจ์›์˜ ๊ฐ„๋‹จํ•œ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ

Props ๐Ÿ˜Š

๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ ์š”์†Œ(์ฝ๊ธฐ ์ „์šฉ)

์ „๋‹ฌ๋ฐ›์€ ์ž์‹์—์„œ๋Š” props์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Œ

๊ฐœ์ธ๊ณต๋ถ€๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๊ณต๊ฐ„์ด๋ผ ํ‹€๋ฆฐ ์ ์ด ์žˆ์„ ๊ฒฝ์šฐ ๋Œ“๊ธ€ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๋Œ“๊ธ€