angular6 路由複用,路由緩存(RouteReuseStrategy)

實現功能:首頁有表單查詢,以及查詢結果,如果點進去詳情,再返回首頁的時候,表單查詢跟結果的狀態要保持原狀

                  注:首次登陸的情況下以及單擊其餘頁面的時候,需要清空

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章