Junior — Middle
Vysvetlite rozdiel medzi stavom, ktorý sa uchováva v systéme, a systémami, ktoré medzi požiadavkami neuchovávajú stav.
sobes.tech AI
Odpoveď od AI
Stav, ktorý sa uchováva v systéme (s stavom), znamená, že systém uchováva informácie o predchádzajúcich interakciách alebo údajoch medzi požiadavkami. To umožňuje systému pamätať si kontext používateľa, nastavenia alebo medzičasové výsledky.
Naopak, systémy bez stavu (stateless) neukladajú žiadne informácie medzi požiadavkami. Každá požiadavka je spracovaná ako nová, nezávislá, bez znalosti predchádzajúcich.
V Flutteri sa to prejavuje takto:
- Stateful Widget — widget, ktorý uchováva stav (napríklad čítač, vložený text). Pri zmene stavu sa widget znovu vykreslí, zachovávajúc údaje medzi aktualizáciami.
- Stateless Widget — widget bez stavu, ktorý je zostavený iba na základe vstupných parametrov a neukladá vnútorné údaje.
Príklad:
class CounterWidget extends StatefulWidget {
@override
_CounterWidgetState createState() => _CounterWidgetState();
}
class _CounterWidgetState extends State<CounterWidget> {
int _counter = 0;
void _increment() {
setState(() {
_counter++;
});
}
@override
Widget build(BuildContext context) {
return Column(
children: [
Text('Count: \\$_counter'),
ElevatedButton(onPressed: _increment, child: Text('Increment')),
],
);
}
}
Tu, stav _counter sa udržiava medzi stlačeniami tlačidla, čo nie je možné v stateless widgete.