在使用shouldReuseRoute时,需要同时使用Angular的RouteReuseStrategy服务。具体的代码示例如下:
import{RouteReuseStrategy} from '@angular/router'; import {CustomReuseStrategy} from './custom-reuse-strategy';
@NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, AppRoutingModule ], providers: [ {provide: RouteReuseStrategy, useClass: CustomReuseStrategy} ], bootstrap: [AppComponent] }) export class AppModule { }
import {RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle} from '@angular/router'; export class CustomReuseStrategy implements RouteReuseStrategy { shouldDetach(route: ActivatedRouteSnapshot): boolean { return false; } store(route: ActivatedRouteSnapshot, detachedTree: DetachedRouteHandle): void { } shouldAttach(route: ActivatedRouteSnapshot): boolean { return false; } retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle|null { return null; } shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean { if (future.routeConfig === curr.routeConfig) { return true; } else { return false; } } }
通过以上步骤,就可以完成相关的操作。这样在使用shouldReuseRoute时就不会破坏URL啦。