Stateful Widgets

Widgets with mutable state and setState

A StatefulWidget can change over time. It holds mutable state and rebuilds its UI when that state updates.

Counter
StatefulWidget
Immutable config
_CounterState
int _count = 0
Mutable state
Dart
class Counter extends StatefulWidget {
  const Counter({super.key});

  @override
  State<Counter> createState() =>
    _CounterState();
}

class _CounterState extends State<Counter> {
  int _count = 0; // mutable state

  @override
  Widget build(BuildContext context) {
    return Text('Count: $_count');
  }
}