1
resposta

FutureBuilder ou StatefulWidget?

Fiquei em dúvida, pois nas aulas nós utilizamos o FutureBuilder e ele foi apresentado num contexto justamente para evitar que usássemos o StatefulWidget. Agora, nessa última aula, precisamos atualizar para StatefulWidget mesmo assim... e ainda continuamos usando o FutureBuilder junto.

Queria entender: 1 - Quando devemos usar o FutureBuilder, então? 2 - E devemos mesmo utilizar o FutureBuilder junto com o StatefulWidget? 3 - O código não vai ser reconstruído duas vezes (uma com o FutureBuilder e outra com o setState), gastando mais processamento?

Quem puder ajudar, agradeço demais! Fiquei bem em dúvida :p

1 resposta

Olá, Matheus!

Entendo a sua dúvida e vou tentar esclarecer para você.

1 - O FutureBuilder é utilizado quando temos uma operação assíncrona que retorna um Future e queremos exibir diferentes widgets dependendo do estado desse Future (por exemplo, exibir um indicador de carregamento enquanto o Future está sendo processado e exibir o resultado quando ele estiver pronto). Ele é uma forma conveniente de lidar com a atualização da interface do usuário com base no resultado de uma operação assíncrona.

2 - Sim, é possível utilizar o FutureBuilder junto com o StatefulWidget. O FutureBuilder pode ser utilizado dentro do build do StatefulWidget para construir a interface do usuário com base no resultado do Future. O StatefulWidget, por sua vez, permite que você atualize a interface do usuário em resposta a eventos ou mudanças de estado.

3 - É verdade que o código pode ser reconstruído duas vezes, uma vez pelo FutureBuilder e outra vez pelo setState. No entanto, o Flutter é otimizado para minimizar a reconstrução desnecessária de widgets. O Flutter utiliza um mecanismo chamado reconciliação, que compara a árvore de widgets anterior com a nova árvore de widgets e atualiza apenas os widgets que realmente precisam ser atualizados. Portanto, o impacto no desempenho deve ser mínimo.

Espero ter ajudado a esclarecer suas dúvidas! Se tiver mais alguma pergunta, é só perguntar. Bons estudos!