[Rust] iced: ์ด๋ฒคํŠธ์™€ update

0.13 ๋ฒ„์ „ ๊ธฐ์ค€์ด๋‹ค.

iced๋Š” elm ์•„ํ‚คํ…์ณ์— ๊ธฐ๋ฐ˜ํ•ด์„œ ๋ชจ๋“  ์ƒํƒœ๊ด€๋ฆฌ๋ฅผ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ์ˆ˜ํ–‰ํ•œ๋‹ค.

  1. ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌด์–ธ๊ฐ€ ์•ก์…˜์„ ํ–‰ํ•˜๋ฉด
  2. ๊ทธ์— ๋งž์ถฐ์„œ ์ด๋ฒคํŠธ๋ฅผ ์ „์†กํ•˜๊ณ 
  3. ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ(update)์—์„œ mutation์„ ์ˆ˜ํ–‰ํ•˜๊ณ 
  4. ๋ Œ๋”๋Ÿฌ(view)์—์„œ ๋ Œ๋”๋ง์„ ์™„๋ฃŒํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ด ๋ฒ•์น™์„ ๋ฒ—์–ด๋‚˜์ง€ ์•Š์•„์•ผ ์ œ๋Œ€๋กœ๋œ ๋ Œ๋”๋ง ํ˜•ํƒœ๋ฅผ ๋ณด์กดํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•œ๋ฒˆ button ์œ„์ ฏ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์˜ˆ์‹œ๋กœ ๋“ค์–ด๋ณด๊ฒ ๋‹ค.

๋จผ์ € ๋ฒ„ํŠผ์ด ๋ˆŒ๋ฆด๋•Œ๋งˆ๋‹ค ์Œ“์„ ์นด์šดํŠธ๊ฐ’์˜ ์ƒํƒœ๋ฅผ ๋ฉ”์ธ ๋ฐ์ดํ„ฐ์— ์ถ”๊ฐ€ํ•˜๊ณ 


์ด๋ฒคํŠธ๋ฅผ ์ •์˜ํ•œ๋‹ค.


์ด๋ฒคํŠธ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด, ์นด์šดํŠธ๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.


๊ทธ๋ฆฌ๊ณ  view ๋ถ€๋ถ„์— ๋ Œ๋”๋ง ํ‘œํ˜„ ํ˜•ํƒœ์™€, ์œ„์ ฏ์ด ๋‚ ๋ฆด ์ด๋ฒคํŠธ์˜ ํ˜•ํƒœ๋ฅผ ํ•จ๊ป˜ ์ •์˜ํ•œ๋‹ค.
count๋ฅผ ํ…์ŠคํŠธ๋กœ ๋ Œ๋”๋งํ•˜๋ฉฐ, button์ด ๋ˆŒ๋ฆด ๋•Œ๋Š” ๋ฐฉ๊ธˆ ์ •์˜ํ•œ ์ด๋ฒคํŠธ๋ฅผ ๋‚ ๋ฆฌ๋„๋ก ํ–ˆ๋‹ค.

๊ทธ๋Ÿผ ์ €๊ฒŒ ๋‹ค ์œ ๊ธฐ์ ์œผ๋กœ ๋งž๋ฌผ๋ ค์„œ

์ ์ ˆํ•œ ํ๋ฆ„์˜ ์‚ฌ์šฉ์ž ์ž…๋ ฅ-mutation-๋ Œ๋”๋ง์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋”ฐ๋ฅด๊ฒŒ ๋œ๋‹ค.

ํ•˜๋‚˜๋งŒ ๋” ๋ด๋ณด์ž. ์ € ๊ฒฝ์šฐ์—๋Š” ๋ฒ„ํŠผ ์ด๋ฒคํŠธ์— ๋ณ„๋‹ค๋ฅธ ์ „๋‹ฌ๊ฐ’์ด ์—†์—ˆ์ง€๋งŒ, ์žˆ์„ ๋•Œ๋„ ์žˆ๋‹ค.
์ด๋ฒˆ์—๋Š” ํ…์ŠคํŠธ ์ž์œ ์ž…๋ ฅ ์œ„์ ฏ์ธ text_input์„ ์จ๋ณธ๋‹ค.

ํ…์ŠคํŠธ ์ €์žฅ์šฉ ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ์ด๋ฒคํŠธ์—๋„ String์„ ๋ฐ›๋Š” ๋…€์„์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
text_input ์œ„์ ฏ์€ ์ด๋ฒคํŠธ ํŽ˜์ด๋กœ๋“œ๋กœ ์ž…๋ ฅํ•œ ๋ฌธ์ž์—ด ์ „์ฒด๊ฐ€ ๋‚ ๋ผ์˜ค๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง์—์„œ๋Š” ๊ทธ๋Œ€๋กœ ๋ฐ›์•„์„œ ์ €์žฅํ•œ๋‹ค.


๊ทธ๋ฆฌ๊ณ  ์œ„์ ฏ ๋˜ ์ •์˜ํ•˜๋ฉด์„œ ์ž…๋ ฅ๋ ๋•Œ๋งˆ๋‹ค ๋ฐฉ๊ธˆ ์ •์˜ํ•œ ์ด๋ฒคํŠธ๋ฅผ ๋‚ ๋ฆฌ๋„๋ก ํ–ˆ๋‹ค.


๊ทธ๋Ÿฌ๋ฉด ๋”ฑ ์šฐ๋ฆฌ๊ฐ€ ์˜ˆ์ƒํ•œ ํ…์ŠคํŠธ ์ž…๋ ฅ ์นธ์ด ๋งŒ๋“ค์–ด์ง„๋‹ค.

์ด๋Ÿฐ ๋А๋‚Œ์ด๋‹ค.
๋งŒ์•ฝ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋„์›Œ์„œ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์ด ์•„๋‹Œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋™์ž‘์— ์˜ํ•œ mutation-rendering์„ ์ˆ˜ํ–‰ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค๋ฉด, subscription์„ ํ†ตํ•ด์„œ ์ด๋ฒคํŠธ ํ๋ฆ„์„ ํ†ต์ œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ํ•œ๋‹ค.

์ด๊ฑด ๋ณ„๋„ ํฌ์ŠคํŠธ๋กœ ์ •๋ฆฌํ•ด๋ณด๊ฒ ๋‹ค.