import { RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router'; /** * Estrategia personalizada que evita la reutilización de rutas * para asegurar que los componentes se vuelvan a crear en cada navegación */ export class CustomRouteReuseStrategy implements RouteReuseStrategy { /** * No almacenar ninguna ruta al desactivarse */ shouldDetach(route: ActivatedRouteSnapshot): boolean { return false; } /** * No hay rutas almacenadas, así que esto nunca se llama */ store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle | null): void {} /** * No recuperar rutas almacenadas */ shouldAttach(route: ActivatedRouteSnapshot): boolean { return false; } /** * No hay rutas almacenadas, así que esto nunca se llama */ retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null { return null; } /** * No reutilizar rutas para forzar la recreación de componentes */ shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean { // Solo reutilizar si es la misma ruta exactamente (evita problemas con rutas anidadas) return future.routeConfig === curr.routeConfig && JSON.stringify(future.params) === JSON.stringify(curr.params); } }