ํ๋ฌํฐ์ ์์ ฏ์ ํฌ๊ฒ ๋ ๊ฐ์ง๋ก ๋๋๋ค.
Stateful๊ณผ Stateless
Stateful์ ์์ ฏ์ด ๋์ํ๋ ๋์ ๋ด๋ถ ํด๋์ค์์ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ด ํ์ํ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋๋ค.
setState ์คํ ์ดํ ํ๋ฉด์ ๋ค์ ๊ทธ๋ ค์ ๋ณ๊ฒฝ๋ ๋ถ๋ถ์ ๋ค์ ๋ฐ์ํ๋ค.
Stateless๋ Stateful๊ณผ ๋ค๋ฅด๊ฒ ์์ ฏ์ด ๋์ํ๋ ๋์ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ด ์ผ์ด๋์ง ์๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋๋ค.
์ฌ์ฉ์์ ๋ฐ์๊ณผ ์๊ด ์์ด ํ๋ฉด๋ง ๋ณด์ฌ์ค ๋ ์ฌ์ฉํ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("KoDoHyeon"),
),
),
);
}
}
Stateless์ ์ฝ๋์ด๋ค.
ํน๋ณํ ๊ตฌ๋ฌธ์์ด ๋ฐ๋ก @override๋ฅผ ํตํ Widget build(BuildContext context)๋ฅผ ์คํํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _MyAppState();
}
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("KoDohyeon"),
),
),
);
}
}
Stateless์ ๋ค๋ฅด๊ฒ ํด๋์ค๊ฐ 1๊ฐ ์ถ๊ฐ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ฐ์ MyApp ํด๋์ค์์ createState๋ฅผ ์คํํ๋ค.
(_MyAppState์์ ๊ฐ์ด ๋ณ๊ฒฝ๋๋ ์ฝ๋๋ฅผ ์ ๋ ฅํด์ผํ๋๋ฐ ์ฌ๊ธฐ์ ์ ๋ ฅํ์ง ์์๋ค.)
์๋ช ์ฃผ๊ธฐ์ ๊ดํ ์ข์ ๊ธ์ด ์์ด์ ์ฒจ๋ถํ๋ค.
https://jaceshim.github.io/2019/01/28/flutter-study-stateful-widget-lifecycle/
'๐ป ๊ฐ๋ฐ > Flutter' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Flutter / Dart] What is Singleton? (0) | 2022.07.21 |
---|---|
[Flutter] SingleChildScrollView, ListView, ListView.bulider (1) | 2021.08.18 |
4. Column, Row, Expanded (0) | 2021.08.18 |
3. Container, Padding (0) | 2021.08.18 |
1. Widget (0) | 2021.07.13 |