๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ป Deep Wide Programming/React

[์ƒํ™œ์ฝ”๋”ฉ ๋ฆฌ์•กํŠธ] ์ด๋ฒคํŠธ state ๋ณ€๊ฒฝํ•˜๊ธฐ (feat. bind ํ•จ์ˆ˜, setStateํ•จ์ˆ˜)

728x90
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ์ด๋ฒคํŠธ ์„ค์น˜ (1);  ํ…Œ์ŠคํŠธ (๋งํฌ ํด๋ฆญ์‹œ, alert์ฐฝ ๋„์šฐ๊ธฐ)

 

๐Ÿ“Œ์ด๋ฒคํŠธ ์„ค์น˜ (2); ๋‹ค์ŒํŽ˜์ด์ง€๋กœ ์ด๋™ ์ค‘์ง€

 

๐Ÿ“Œ"mode ์„ค์ • & render ๋ถ€๋ถ„"๊ณผ "์ด๋ฒคํŠธ๋ฅผ ์„ค์น˜ํ•œ ๋ถ€๋ถ„"์„ ์—ฐ๊ฒฐํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 

 

โ‡ข๐Ÿ”— ์—ฐ๊ฒฐ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•

*์ด๋ฒคํŠธ ํ•จ์ˆ˜ ์•ˆ์—์„œ 'this'์˜ ๊ฐ’์€ ์•„๋ฌด๊ฒƒ๋„ ๊ฐ€๋ฆฌํ‚ค์ง€ ์•Š๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋œฌ๋‹ค.*

โ‡ข ์ด๋ฒคํŠธ ํ•จ์ˆ˜ ๋ฐ”๋กœ ๋’ค์—, '.bind(this)'๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ this์˜ ๊ฐ’์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

โœš ๋˜ ํ•˜๋‚˜์˜ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค. ๋ฆฌ์•กํŠธ์˜ ์–ธ์–ด 'setState({})'๋กœ ๋ชจ๋“œ๋ฅผ ์ „ํ™˜ํ•ด์ฃผ์–ด์•ผ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ.

this.state.mode = 'Greeting';

์œผ๋กœ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค. 

 

๋ฆฌ์•กํŠธ ์–ธ์–ด๋กœ ๋ชจ๋“œ ์ „ํ™˜์„ ํ•ด์ฃผ๋‹ˆ, ๋น„๋กœ์†Œ ์œ„์—์„œ ์„ธํŒ…ํ•ด์ค€ greeting์˜ ๋ชจ๋“œ์˜ ๊ฐ’๋“ค๋กœ ๋กœ๋“œ๊ฐ€ ๋˜์—ˆ๋‹ค. 

 

read ๋ชจ๋“œ๋กœ ๋ฐ”๊ฟ”์ฃผ๋‹ˆ, read์— ํ•ด๋‹น๋˜๋Š” ๊ฐ’์ด ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 


 

 

[์›๋ฆฌ ์ดํ•ดํ•˜๊ณ  ๋„˜์–ด๊ฐ€๊ธฐ]

๐Ÿ’Ž ์ด๋ฒคํŠธ bind ํ•จ์ˆ˜ ์ดํ•ดํ•˜๊ธฐ

bindTest๋ผ๋Š” ํ•จ์ˆ˜์˜ this ๊ฐ’์„ obj๋กœ ์ฃผ๊ณ  ์‹ถ์€ ์ƒํ™ฉ. bindํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค. 


 

 

๐Ÿ’Ž ์ด๋ฒคํŠธ setState ํ•จ์ˆ˜ ์ดํ•ดํ•˜๊ธฐ


์ตœ์ดˆ์— ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ๋Š”, ์•„๋ž˜์™€ ๊ฐ™์ด 'this.state'๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋งŒ๋“ค์–ด์ฃผ๋ฉด ๋˜์ง€๋งŒ, ๋™์ ์œผ๋กœ state ๊ฐ’์„ ๋ณ€๋™ํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ setState๋ฅผ ํ™œ์šฉํ•ด์•ผ ํ•œ๋‹ค. 

์ด๋ฒคํŠธ ๋‚ด์—์„œ this.state๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€, ๋ฆฌ์•กํŠธ ๋ชฐ๋ž˜ ๋ฐ”๊พธ๋Š” ๊ฒƒ๊ณผ ๋‹ค๋ฆ„ ์—†๋‹ค. ๊ทธ๋ž˜์„œ ์•Œ์•„์ฐจ๋ฆฌ์งˆ ๋ชปํ•ด..!

728x90
๋ฐ˜์‘ํ˜•