Actividad entregable

8. ProductFilterComponent (Filtrado de productos en tiempo real)

Vamos a crear el componente ProductFilterComponent, que permitirá filtrar los productos que se muestran en pantalla.

Ahora que ya podemos añadir y eliminar productos, tiene todo el sentido implementar filtros, porque vamos a trabajar siempre sobre una lista dinámica.

Aplicamos principalmente el Tema 6, con control de flujo y renderizado condicional, y el Tema 7, usando el servicio como gestor del estado.
 
BehaviorSubject

Un BehaviorSubject es un tipo especial de observable que guarda un valor interno y emite ese valor cada vez que cambia.”

Cada vez que el valor cambia, todos los componentes que están suscritos se actualizan automáticamente

Hasta ahora tenemos varios componentes: el formulario, la lista, las tarjetas y, dentro de poco, los filtros.

Todos ellos necesitan trabajar con la misma lista de producto

¿Dónde guardamos esa lista para que todos la vean actualizada? En el servicio, no en los componentes

En una aplicación real, el backend sería quien guarda los datos. Como aquí no tenemos backend que permita crear y borrar productos, usamos BehaviorSubject como una pequeña base de datos en memoria

BehaviorSubject nos permite gestionar el estado compartido de la aplicación de forma reactiva. Cada vez que el estado cambia, todas las vistas se actualizan automáticamente.