Înțelegerea diferenței dintre un StatelessWidget (care depinde doar de datele de configurare primite și nu își schimbă niciodată starea internă) și un StatefulWidget (care menține o instanță de State persistentă pe durata vieții ecranului) este primul pas în stăpânirea Flutter.
Ciclul de Viață al unui StatefulWidget
class LifecycleDemo extends StatefulWidget {
const LifecycleDemo({super.key});
@override
State createState() => _LifecycleDemoState();
}
class _LifecycleDemoState extends State {
@override
void initState() {
super.initState();
// 1. Inițializare unică: pornire stream-uri, listeneri, cereri HTTP
print('initState: Ecranul a fost montat în arbore.');
}
@override
void dispose() {
// 2. Curățare obligatorie: eliberare controllere și stream-uri pentru a evita memory leaks!
print('dispose: Ecranul este distrus.');
super.dispose();
}
@override
Widget build(BuildContext context) {
return const Placeholder();
}
}