Sobes.tech
Junior — Middle

Ներկայացրեք տարբերությունը համակարգի ներսում պահվող վիճակի և այն համակարգերի միջև, որոնք չեն պահում վիճակ հարցումների միջև։

sobes.tech AI

Պատասխան AI-ից

Տեղական, որը պահվում է համակարգի ներսում (stateful), նշանակում է, որ համակարգը պահպանում է տեղեկատվություն նախորդ փոխազդեցությունների կամ տվյալների մասին հարցումների միջև: Սա թույլ է տալիս համակարգին հիշել օգտվողի կոնտեքստը, կարգավորումները կամ միջանկյալ արդյունքները:

Հակառակ դեպքում, առանց վիճակի համակարգերը (stateless) չեն պահպանում որևէ տեղեկատվություն հարցումների միջև: Ամեն հարցում մշակվում է որպես նոր, անկախ, առանց նախորդների մասին տեղեկության:

Flutter-ում դա արտահայտվում է հետևյալ կերպ.

  • Stateful Widget — վիջեթ, որը պահպանում է վիճակը (օրինակ, հաշվիչ, մուտքագրված տեքստ): Երբ վիճակը փոխվում է, վիջեթը նորից նկարագրվում է, պահելով տվյալները փոփոխությունների միջև:
  • Stateless Widget — առանց վիճակի վիջեթ, որը կառուցվում է միայն մուտքային պարամետրերի հիման վրա և չի պահպանում ներքին տվյալներ:

Օրինակ՝

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

Այստեղ _counter վիճակը պահվում է բոտի սեղմումներից հետո, ինչը հնարավոր չէ առանց վիճակի վիջեթում: