Junior — Middle
Selgitage erinevust süsteemi sees säilitatava oleku ja süsteemide vahel, mis olekut vahepeal ei säilita.
sobes.tech AI
Vastus AI-lt
Seisund, mis süsteemi sees hoitakse (stateful), tähendab, et süsteem salvestab teavet eelnevate interaktsioonide või andmete kohta päringute vahel. See võimaldab süsteemil mäletada kasutaja konteksti, seadeid või vahepealseid tulemusi.
Vastupidiselt, süsteemid ilma seisundita (stateless) ei salvesta mingit teavet päringute vahel. Iga päring töödeldakse kui uus, sõltumatu, ilma eelnevate teadmisteta.
Flutteris avaldub see järgmiselt:
- Stateful Widget — vidjet, mis hoiab seisundit (näiteks loendur, sisestatud tekst). Kui seisund muutub, siis vidjet uuesti joonistatakse, säilitades andmed vahemikus uuendusi.
- Stateless Widget — seisunditeta vidjet, mis ehitatakse ainult sisendparameetrite põhjal ning ei hoia sisemisi andmeid.
Näide:
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')),
],
);
}
}
Siin säilitatakse _counter seisund vahepeal, mis ei ole võimalik stateless vidjetis.