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: ActivatedRouteS

你可能感兴趣的:(angular4,前端问题,angular6路由复用,angular6路由缓存)