¿QUÉ ES LA PROGRAMACIÓN REACTIVA?
La programación reactiva es un paradigma de programación orientado a flujos de datos asíncronos y a la propagación automática de cambios. En lugar de escribir código que espera a que ocurran las cosas (imperativo), en la programación reactiva se declara qué se quiere hacer cuando los datos lleguen o cambien, y el sistema se encarga de propagar esos cambios de forma eficiente.Principios fundamentales
- Todo es un stream (flujo): Eventos de clic, respuestas HTTP, mensajes de WebSocket, cambios en una base de datos, sensores, etc., se tratan como flujos de datos continuos.
- Observables: Son los productores de datos. Emiten valores a lo largo del tiempo.
- Observers: Consumidores que reaccionan a esos valores.
- Propagación de cambios: Cuando un dato cambia, todos los componentes que dependen de él se actualizan automáticamente.
- Declarativo: Enfocado en el qué en lugar del cómo.
Ejemplo
Forma imperativa (tradicional)
button.addEventListener('click', () => {
fetchData().then(data => {
updateUI(data);
});
});
Forma reactiva (RxJS)
fromEvent(button, 'click')
.pipe(
switchMap(() => fetchData()),
map(data => transformData(data))
)
.subscribe(updateUI);
Ventajas de la programación reactiva
- Excelente manejo de asincronía y eventos.
- Código más limpio y mantenible en aplicaciones complejas.
- Fácil composición de flujos con operadores (map, filter, debounceTime, combineLatest, switchMap, etc.).
- Mejor manejo de errores y cancelación de operaciones.
- Ideal para aplicaciones en tiempo real, dashboards, chats, actualizaciones en vivo y microservicios.