Sobes.tech
Junior — Middle

Explique a diferença entre o estado guardado dentro do sistema e os sistemas que não guardam estado entre solicitações.

sobes.tech IA

Resposta da IA

O estado, que é mantido dentro do sistema (com estado), significa que o sistema armazena informações sobre interações ou dados anteriores entre pedidos. Isto permite que o sistema lembre o contexto do utilizador, configurações ou resultados intermédios.

Em contraste, os sistemas sem estado (stateless) não armazenam qualquer informação entre pedidos. Cada pedido é tratado como novo, independente, sem conhecimento dos anteriores.

No Flutter, isto manifesta-se assim:

  • Stateful Widget — widget que guarda estado (por exemplo, um contador, texto inserido). Quando o estado muda, o widget é redesenhado, mantendo os dados entre atualizações.
  • Stateless Widget — widget sem estado, construído apenas com base nos parâmetros de entrada e não guarda dados internos.

Exemplo:

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

Aqui, o estado _counter é mantido entre os cliques do botão, o que não é possível num widget sem estado.