實現功能:首頁有表單查詢,以及查詢結果,如果點進去詳情,再返回首頁的時候,表單查詢跟結果的狀態要保持原狀
注:首次登陸的情況下以及單擊其餘頁面的時候,需要清空
1. 首先建一個路由緩存文件 AppRoutingCache
import { RouteReuseStrategy, DefaultUrlSerializer, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router';
export class AppRoutingCache implements RouteReuseStrategy {
public static handlers: { [key: string]: DetachedRouteHandle } = {};
// 表示對路由允許複用
public shouldDetach(route: ActivatedRouteSnapshot): boolean {
// 默認對所有路由複用 可通過給路由配置項增加data: { keep: true }來進行選擇性使用,代碼如下
//如果是全部路由都需要複用以及路由緩存的清空,就需要把if這個判斷註釋掉-----
if (!route.data.keep) {
return false;
}
//-------------------------------------------------------------------
return true;
}
// 當路由離開時會觸發。按path作爲key存儲路由快照&組件當前實例對象
public store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {
AppRoutingC