Junior — Middle
Paaiškinkite skirtumą tarp būsenos, kuri saugoma sistemoje, ir sistemų, kurios nesaugo būsenos tarp užklausų.
sobes.tech AI
Atsakymas iš AI
Būsena, kuri saugoma sistemoje (su būsena), reiškia, kad sistema saugo informaciją apie ankstesnius sąveikos ar duomenų tarp užklausų. Tai leidžia sistemai prisiminti naudotojo kontekstą, nustatymus ar tarpinės reikšmės.
Priešingai, be būsenos sistemos (stateless) ne saugo jokios informacijos tarp užklausų. Kiekvienas užklausimas apdorojamas kaip naujas, nepriklausomas, be žinojimo apie ankstesnius.
Flutter tai pasireiškia taip:
- Stateful Widget — valdiklis, kuris saugo būseną (pavyzdžiui, skaitiklis, įvestas tekstas). Kai būseną keičia, valdiklis perpiešiamas iš naujo, išlaikydamas duomenis tarp atnaujinimų.
- Stateless Widget — be būsenos valdiklis, kuris kuriamas tik remiantis įvesties parametrais ir ne saugo vidinių duomenų.
Pavyzdys:
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')),
],
);
}
}
Čia _counter būsena išlieka tarp paspaudimų, kas neįmanoma be būsenos valdiklyje.