Junior — Middle
Izskaidrojiet atšķirību starp stāvokli, kas saglabāts sistēmā, un sistēmām, kas nesaglabā stāvokli starp pieprasījumiem.
sobes.tech AI
Atbilde no AI
Stāvoklis, kas tiekts sistēmā (ar stāvokli), nozīmē, ka sistēma saglabā informāciju par iepriekšējām mijiedarbībām vai datiem starp pieprasījumiem. Tas ļauj sistēmai atcerēties lietotāja kontekstu, iestatījumus vai starpposma rezultātus.
Pretēji tam, sistēmas bez stāvokļa (stateless) nesaglabā nekādu informāciju starp pieprasījumiem. Katrs pieprasījums tiek apstrādāts kā jauns, neatkarīgs, bez iepriekšējo zināšanas.
Flutter tas izpaužas šādi:
- Stateful Widget — widgets, kas saglabā stāvokli (piemēram, skaitītājs, ievadīts teksts). Kad stāvoklis mainās, widgets tiek pārkrāsots, saglabājot datus starp atjauninājumiem.
- Stateless Widget — widgets bez stāvokļa, kas tiek būvēti tikai uz ievades parametru pamata un nesaglabā iekšējos datus.
Piemērs:
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')),
],
);
}
}
Šeit _counter stāvoklis tiek saglabāts starp pogas nospiešanas reizēm, kas nav iespējams bez stāvokļa widgetā.