$watch en Angular moderno
$watch se divide en tres herramientas: computed para valores derivados, effect para efectos secundarios, y RxJS para todo lo que implique tiempo o peticiones.
Antes · AngularJS
$scope.$watch('vm.query', function (value) {
if (value) { vm.search(value); }
});Después · Angularquery = signal('');
results = toSignal(
toObservable(this.query).pipe(
debounceTime(300),
filter(q => q.length > 0),
switchMap(q => this.api.search(q)),
),
{ initialValue: [] },
);Qué cambia
- Un watcher que solo recalcula un valor pasa a ser un computed.
- Un watcher que dispara una petición pasa a ser un flujo de observables, con debounce y cancelación incluidos.
- Los watches profundos ($watch con true, $watchCollection) pasan a ser actualizaciones inmutables: reemplaza el arreglo u objeto en vez de mutarlo.
Consejo de migración. Cuenta los watchers durante el diagnóstico. Las pantallas con muchos suelen ser las lentas, y son las que más ganan con la migración.
Relacionado
¿Planeas una migración o una plataforma de microfrontends?
En una llamada de 20 minutos me cuentas tu situación y te digo cómo la abordaría. Si todavía no vale la pena, también te lo digo.
Escríbeme por LinkedIn