Junior — Middle
¿En qué se diferencian los componentes StreamBuilder y Future al trabajar con datos asíncronos en Flutter?
sobes.tech AI
Respuesta de la IA
En Flutter, FutureBuilder y StreamBuilder se utilizan para trabajar con datos asíncronos, pero difieren en el tipo de fuente de datos:
-
FutureBuilder trabaja con un objeto
Future— es una operación asíncrona de una sola vez que devuelve un resultado o un error. Por ejemplo, cargar datos desde un servidor. -
StreamBuilder trabaja con un
Stream— es un flujo de datos que puede emitir múltiples eventos a lo largo del tiempo. Por ejemplo, actualizaciones de datos en tiempo real o eventos de entrada del usuario.
Ejemplo de uso de FutureBuilder:
FutureBuilder<String>(
future: fetchData(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator();
} else if (snapshot.hasError) {
return Text('Error: \\${snapshot.error}');
} else {
return Text('Datos: \\${snapshot.data}');
}
},
)
Ejemplo de uso de StreamBuilder:
StreamBuilder<int>(
stream: counterStream(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
}
return Text('Contador: \\${snapshot.data}');
},
)
Por lo tanto, elige FutureBuilder para operaciones de una sola vez y StreamBuilder para datos en flujo.