Sobes.tech
Junior — Middle

Magyarázza el a rendszerben tárolt állapot és az állapotot nem megőrző rendszerek közötti különbséget.

sobes.tech MI

Válasz az MI-től

Az állapot, amelyet a rendszer belsejében tárolnak (stateful), azt jelenti, hogy a rendszer információkat tárol a korábbi interakciókról vagy adatok között a kérések között. Ez lehetővé teszi a rendszer számára, hogy emlékezzen a felhasználói kontextusra, beállításokra vagy közbenső eredményekre.

Ezzel szemben az állapot nélküli rendszerek (stateless) nem tárolnak semmilyen információt a kérések között. Minden kérés újként és függetlenül kerül feldolgozásra, anélkül, hogy ismernék a korábbiakat.

Flutterben ez így nyilvánul meg:

  • Stateful Widget — olyan widget, amely tárolja az állapotot (pl. számláló, beírt szöveg). Az állapot változásakor a widget újrarajzolódik, megőrizve az adatokat a frissítések között.
  • Stateless Widget — állapot nélküli widget, amely csak a bemeneti paraméterek alapján épül fel, és nem tárol belső adatokat.

Példa:

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')),
      ],
    );
  }
}

Ebben az esetben az _counter állapot a gombnyomások között megmarad, ami nem lehetséges stateless widget esetén.