ํ์
๋ช
? -> nullable (null๊ฐ๋ ๊ฐ์ง ์ ์์)
ํ์
๋ช
! -> non-nullable (null๊ฐ์ ๊ฐ์ง ์ ์์)
ํ์ ๋ช
Stateful => Value ๊ฐ์ ์ง์์ ์ผ๋ก ์ถ์ ๋ณด์กด
Stateless => ์ด์ ์ํธ์์ฉ์ ์ด๋ ํ ๊ฐ๋ ์ ์ฅํ์ง ์์
Stateless Widgets(์ํ๊ฐ ์๋ ์ ์ ์ธ ์์ ฏ)
-> ์คํฌ๋ฆฐ์์ ์กด์ฌ๋ง ํ ๋ฟ ์๋ฌด๊ฒ๋ ํ์ง ์์
-> ์ด๋ ํ ์ค์๊ฐ ๋ฐ์ดํฐ๋ ์ ์ฅํ์ง ์์
-> ์ด๋ค ๋ณํ(๋ชจ์,์ํ)๋ฅผ ์ ๋ฐ์ํค๋ value๊ฐ์ ๊ฐ์ง์ง ์์
Stateful Widgets(๊ณ์ ์์ง์ด๊ฑฐ๋ ๋ณํ๊ฐ ์๋ ์์ ฏ)
-> ์ฌ์ฉ์์ interaction์ ๋ฐ๋ผ์ ๋ชจ์์ด ๋ฐ๋
-> ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ฒ ๋์์ ๋ ๋ชจ์์ด ๋ฐ๋
ex) ์ฒดํฌ๋ฐ์ค, ๋ผ๋์ค๋ฒํผ
ํจ์ ๋ช
: ์ฒซ๊ธ์ ์๋ฌธ์๋ก ์์
ex) main(), runApp()
ํด๋์ค[์์ ฏ] ๋ช
: ์ฒซ๊ธ์ ๋๋ฌธ์๋ก ์์
์์ด์ฝ ๋ฒํผ์ด๋ ๊ฐ๋จํ ์์ ฏ์ ์ผ์ชฝ์ ๋ฐฐ์นํ ๋
๋ณต์์ ์์ด์ฝ ๋ฒํผ ๋ฑ์ ์ค๋ฅธ์ชฝ์ ๋ฐฐ์นํ ๋
ํจ์์ ํํ๋ก ์ผ๋ฐ ๋ฒํผ์ด๋ ์์ด์ฝ ๋ฒํผ์ ํฐ์นํ์ ๋ ์ผ์ด๋๋ ์ด๋ฒคํธ๋ฅผ ์ ์ํ๋ ๊ณณ
https://velog.io/@dosilv/Flutter-StatelessWidget-StatefulWidget
ex) Icon(isWeekCalendarVisible ? Icons.arrow_drop_down : Icons.arrow_drop_up)
? ์์ ์์์ด true ์ด๋ฉด ์์ชฝ์ ๋ฐํํ๊ณ , false ์ด๋ฉด ๋ค์ชฝ์ ๋ฐํํ๋ค.
์ผํญ์ฐ์ฐ์๋ ๋ฐ๋์ true์ false ๋๊ฐ์ง ๋ฐํ๊ฐ์ด ํ์ํ๋ฐ, ์๋ฌด ์์ ฏ๋ ๋ฐํํ๊ณ ์ถ์ง ์์ ๊ฒฝ์ฐ์๋ SizedBox๋ฅผ ๋ฐํํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค.