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.