devterview_$ iniciar simulação

StatelessWidget x StatefulWidget

FácilJúniorWidgets e estado

Pergunta

Qual a diferença entre `StatelessWidget` e `StatefulWidget` no Flutter, e o que `setState` realmente faz?

Resposta esperada

`StatelessWidget` descreve UI que depende só da configuração que recebe (seus parâmetros/props) e do contexto — não guarda estado mutável; quando os pais mudam, ele é reconstruído do zero. `StatefulWidget` tem um objeto `State` associado que persiste entre reconstruções e guarda dados mutáveis (um contador, o texto de um campo, se um painel está aberto). `setState(fn)` faz duas coisas: executa `fn` (onde você muta os campos do State) e marca aquele elemento como 'sujo', agendando um rebuild do `build()` daquele widget na próxima frame. Ele NÃO reconstrói o app todo — só a subárvore daquele widget. Chamar `setState` sem mudar nada, ou mutar o estado sem `setState`, são os dois erros comuns.

Por que perguntam isso

Pergunta júnior/pleno de Flutter. Sinal bom: 'setState reconstrói só a subárvore' e reconhecer mutar-sem-setState como bug.

#widgets#setstate#state
publicidade

Perguntas de acompanhamento

Relacionadas