[Rust] iced: ์ด๋ฒคํธ์ update
0.13 ๋ฒ์ ๊ธฐ์ค์ด๋ค.
iced๋ elm ์ํคํ ์ณ์ ๊ธฐ๋ฐํด์ ๋ชจ๋ ์ํ๊ด๋ฆฌ๋ฅผ ์ด๋ฒคํธ ๊ธฐ๋ฐ์ผ๋ก ์ํํ๋ค.
- ์ฌ์ฉ์๊ฐ ๋ฌด์ธ๊ฐ ์ก์ ์ ํํ๋ฉด
- ๊ทธ์ ๋ง์ถฐ์ ์ด๋ฒคํธ๋ฅผ ์ ์กํ๊ณ
- ์ด๋ฒคํธ ํธ๋ค๋ฌ(update)์์ mutation์ ์ํํ๊ณ
- ๋ ๋๋ฌ(view)์์ ๋ ๋๋ง์ ์๋ฃํ๋ ๊ฒ์ด๋ค.
์ด ๋ฒ์น์ ๋ฒ์ด๋์ง ์์์ผ ์ ๋๋ก๋ ๋ ๋๋ง ํํ๋ฅผ ๋ณด์กดํ ์ ์๋ค.
ํ๋ฒ button ์์ ฏ์ ์ฌ์ฉํ๋ ๊ฒ์ ์์๋ก ๋ค์ด๋ณด๊ฒ ๋ค.
๋จผ์ ๋ฒํผ์ด ๋๋ฆด๋๋ง๋ค ์์ ์นด์ดํธ๊ฐ์ ์ํ๋ฅผ ๋ฉ์ธ ๋ฐ์ดํฐ์ ์ถ๊ฐํ๊ณ
์ด๋ฒคํธ๋ฅผ ์ ์ํ๋ค.
์ด๋ฒคํธ๊ฐ ๋ค์ด์ค๋ฉด, ์นด์ดํธ๋ฅผ ์ฆ๊ฐ์ํจ๋ค.
๊ทธ๋ฆฌ๊ณ view ๋ถ๋ถ์ ๋ ๋๋ง ํํ ํํ์, ์์ ฏ์ด ๋ ๋ฆด ์ด๋ฒคํธ์ ํํ๋ฅผ ํจ๊ป ์ ์ํ๋ค.
count๋ฅผ ํ
์คํธ๋ก ๋ ๋๋งํ๋ฉฐ, button์ด ๋๋ฆด ๋๋ ๋ฐฉ๊ธ ์ ์ํ ์ด๋ฒคํธ๋ฅผ ๋ ๋ฆฌ๋๋ก ํ๋ค.
๊ทธ๋ผ ์ ๊ฒ ๋ค ์ ๊ธฐ์ ์ผ๋ก ๋ง๋ฌผ๋ ค์
์ ์ ํ ํ๋ฆ์ ์ฌ์ฉ์ ์
๋ ฅ-mutation-๋ ๋๋ง์ ํ๋ก์ธ์ค๋ฅผ ๋ฐ๋ฅด๊ฒ ๋๋ค.
ํ๋๋ง ๋ ๋ด๋ณด์. ์ ๊ฒฝ์ฐ์๋ ๋ฒํผ ์ด๋ฒคํธ์ ๋ณ๋ค๋ฅธ ์ ๋ฌ๊ฐ์ด ์์์ง๋ง, ์์ ๋๋ ์๋ค.
์ด๋ฒ์๋ ํ
์คํธ ์์ ์
๋ ฅ ์์ ฏ์ธ text_input์ ์จ๋ณธ๋ค.
ํ
์คํธ ์ ์ฅ์ฉ ํ๋๋ฅผ ์ถ๊ฐํ๊ณ , ์ด๋ฒคํธ์๋ String์ ๋ฐ๋ ๋
์์ ์ถ๊ฐํ๋ค.
text_input ์์ ฏ์ ์ด๋ฒคํธ ํ์ด๋ก๋๋ก ์
๋ ฅํ ๋ฌธ์์ด ์ ์ฒด๊ฐ ๋ ๋ผ์ค๊ธฐ ๋๋ฌธ์ด๋ค.
์ด๋ฒคํธ ํธ๋ค๋ง์์๋ ๊ทธ๋๋ก ๋ฐ์์ ์ ์ฅํ๋ค.
๊ทธ๋ฆฌ๊ณ ์์ ฏ ๋ ์ ์ํ๋ฉด์ ์
๋ ฅ๋ ๋๋ง๋ค ๋ฐฉ๊ธ ์ ์ํ ์ด๋ฒคํธ๋ฅผ ๋ ๋ฆฌ๋๋ก ํ๋ค.
๊ทธ๋ฌ๋ฉด ๋ฑ ์ฐ๋ฆฌ๊ฐ ์์ํ ํ
์คํธ ์
๋ ฅ ์นธ์ด ๋ง๋ค์ด์ง๋ค.
์ด๋ฐ ๋๋์ด๋ค.
๋ง์ฝ ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๋ฅผ ๋์์ ์ฌ์ฉ์ ์
๋ ฅ์ด ์๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ๋์์ ์ํ mutation-rendering์ ์ํํ ํ์๊ฐ ์๋ค๋ฉด, subscription์ ํตํด์ ์ด๋ฒคํธ ํ๋ฆ์ ํต์ ํ ์ ์๋๋ก ํด์ผ ํ๋ค.
์ด๊ฑด ๋ณ๋ ํฌ์คํธ๋ก ์ ๋ฆฌํด๋ณด๊ฒ ๋ค.