Describe configuring RouteReuseStrategy to cache dynamic router components.
Skip to solutionKEEP THE
hardFrontend
How do you implement custom routing strategies by extending RouteReuseStrategy?
329 views
01
Understand the problem
routingperformance
02
Attempt it yourself
Sketch your approach before reading the solution — that's what interviews test.
Nudge consolestandby
Stuck? Beam a request up — the console returns a conceptual nudge that guides your logic without spoiling the implementation.
03
Study the solution
Extend RouteReuseStrategy and implement methods like shouldDetach(), store(), shouldAttach(), and retrieve(). By storing the RouteSnapshot manually, you can prevent component destruction on navigation, allowing immediate restore on return.
Solution ready — 2 min read
Classified // press E to declassify
04
Read the code
Custom route reuse strategy implementation
import { RouteReuseStrategy, DetachedRouteHandle, ActivatedRouteSnapshot } from '@angular/router';
export class CustomRouteReuseStrategy implements RouteReuseStrategy {
private handlers: { [key: string]: DetachedRouteHandle } = {};
shouldDetach(route: ActivatedRouteSnapshot): boolean {
return route.data['reuse'] === true;
}
store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle | null): void {
if (route.routeConfig?.path && handle) {
this.handlers[route.routeConfig.path] = handle;
}
}
shouldAttach(route: ActivatedRouteSnapshot): boolean {
return !!route.routeConfig?.path && !!this.handlers[route.routeConfig.path];
}
retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null {
if (!route.routeConfig?.path) return null;
return this.handlers[route.routeConfig.path] || null;
}
shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {
return future.routeConfig === curr.routeConfig;
}
}05
Join the discussion
Discussion (0)
Sign in to join the discussion.
No responses yet. Be the first to share what you think.
Transmission complete // awaiting log
KEEP THE
STREAK ALIVE.
Dossier 112 of 121 decoded in the Angular track. One more won't hurt.