- ์์ ฏ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ, ์ค์๊ฐ์ผ๋ก ๋ณํ ๊ด์ฐฐ ๊ฐ๋ฅ => Stateful
- ์์ ฏ์ ์๋ฌด ๋ฐ์ดํฐ๊ฐ ์์ => Stateless
setState
์ํ๋ฅผ ๋ณํ์ํค๊ธฐ ์ํด์๋ setState ํจ์๋ฅผ ์ด์ฉํ๋ค.
๐ Sample Code
void toggleTitle() {
setState(() {
showTitle = !showTitle;
});
}
- createState : state๋ฅผ ์์ฑํ๋ ๊ณณ์ด๋ค. statefulWidget์์ state๋ฅผ ์คํ
- initState : state๋ฅผ ์ด๊ธฐํํ๋ ํจ์์ด๋ค. initState๋ statefulWidget์ด ์คํํ๋ฉด ๋จ ํ ๋ฒ๋ง ์๋. ๊ทธ ์ดํ ์๋์ํค๊ธฐ ์ํด์๋ ํด๋น statefulWidget์ ์ข
๋ฃ(dispose)ํ ํ์ ๊ฐ๋ฅํ๋ค.
- dispose: ํ๋ฉด์ด ์ข
๋ฃ๋ ๋ ํธ์ถ์ด ๋๋ค.
- dispose, initState ๋ชจ๋ statefulwidget์์๋ง ์ฌ์ฉ๊ฐ๋ฅ!
2. Pomodoro App
- Flexible : ๋ฐ์ค๋ก ์ผ์ ๋น์จ์ ๋๋ ๋ ์ฌ์ฉ.
- Expanded : flex:1 ์ Flexible ๋ฐ์ค์ ๊ฐ๋ค. flex:1 ์ ๊ฐ์ง๋ฉด ๋ฐ์ค ํ๋๊ฐ ํ๋ฉด์ ๊ฝ ์ฑ์ฐ๊ฒ ๋๋ค.
- Timer: 0๊น์ง ์นด์ดํธ ๋ค์ด๋๋ค. ํ์ด๋จธ๊ฐ 0์ ๋๋ฌํ๋ฉด ํ์ด๋จธ๋ ์ง์ ๋ ์ฝ๋ฐฑ ํจ์๋ฅผ ์คํํ๋ค.
๐ Sample Code
void main() {
scheduleTimeout(5 * 1000);
}
Timer scheduleTimeout([int milliseconds = (ํน์ ์๊ฐ)]) =>
Timer(Duration(milliseconds: milliseconds), (ํน์ ์๊ฐ ํ ์ด๋ฃจ์ด์ง ์์
));