Sobes.tech
Junior — Middle

Тавсифи кунед, ки чӣ гуна дар Flutter концепсияи StatefulWidget ва чӣ фарқ дорад аз StatelessWidget?

sobes.tech AI

Ҷавоб аз AI

Дар Flutter, StatefulWidget — ин вҷетест, ки метавонад дар давоми иҷрои барнома ҳолати худро тағир диҳад. Вай ҳолати худро дар объекти алоҳидаи State нигоҳ медорад, ва вақте ки ин ҳолат тағир меёбад, методи setState() даъват мешавад, ки интерфейсро навсозӣ мекунад.

Баръакс, StatelessWidget ҳолати дохилӣ надорад ва ҳамеша дар асоси параметрҳое, ки ба он дода мешаванд, сохта мешавад. Пас аз эҷод кардан, тағир намеёбад.

Масалан:

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('Шумбала: \\$_counter'),
        ElevatedButton(onPressed: _increment, child: Text('Бор кардан')),
      ],
    );
  }
}

Ин ҷо, CounterWidgetStatefulWidget аст, зеро арзиши ҳисобкунанда тағир меёбад ва ба UI таъсир мерасонад. Агар ҳолат тағир наёбад, метавон StatelessWidget-ро истифода бурд.