AngularRouteReuseStrategy和queryParams
创始人
2024-10-29 06:00:50
0

在Angular中,RouteReuseStrategy用于控制是否要重用一个已经存在的路由。而queryParams则定义了在路由中包含的查询参数。如何同时使用这两个功能呢?我们可以在自定义的RouteReuseStrategy实现中重写shouldReuseRoute方法,在这个方法中根据查询参数来判断是否重用已有的路由。

下面是一个示例代码:

import {RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle} from '@angular/router';

export class CustomRouteReuseStrategy implements RouteReuseStrategy {

  shouldDetach(route: ActivatedRouteSnapshot): boolean {
    return false; // 返回false表示不缓存路由
  }

  store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {
    // 留空即可
  }

  shouldAttach(route: ActivatedRouteSnapshot): boolean {
    return false; // 返回false表示不重用路由
  }

  retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle|null {
    return null; // 返回null表示没有可以重用的路由
  }

  shouldReuseRoute(
    future: ActivatedRouteSnapshot,
    current: ActivatedRouteSnapshot
  ): boolean {
    if (future.routeConfig !== current.routeConfig) {
      return false; // 不重用不同的路由
    }
    // 根据查询参数判断是否重用已有的路由
    const futureParams = future.queryParams;
    const currentParams = current.queryParams;
    return JSON.stringify(futureParams) === JSON.stringify(currentParams);
  }

}

以上代码中,shouldReuseRoute方法将与路由重用相关的判断条件的逻辑改写,根据两个ActivatedRouteSnapshot的queryParams来进行比较。如果两者queryParams值不同,就返回false,表示不重用已有的路由。否则的话就表示可以重用。

最后在应用中,我们需要将这个自定义的RouteReuseStrategy设置为应用的路由策略即可:

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule],
  providers: [
    { provide: RouteReuseStrategy, useClass: CustomRouteReuseStrategy } // 设置自定义的RouteReuseStrategy
  ]
})
export class AppRoutingModule { }

相关内容

热门资讯

透视软件!wepoker透视脚... 透视软件!wepoker透视脚本免费下载pc(透视)辅助(其实存在有挂)1、全新机制【wepoker...
透视新版!wepoker有没有... 透视新版!wepoker有没有透视方法(透视)有辅助插件(本来存在有挂)wepoker有没有透视方法...
透视讲解!wepoker数据分... 透视讲解!wepoker数据分析工具(透视)新号好一点(一直有挂)1、用户打开应用后不用登录就可以直...
透视安装!wepoker透视底... 透视安装!wepoker透视底牌(透视)手机版透视脚本(真是存在有挂)1、任何wepoker透视底牌...
透视总结!wepoker模拟器... 透视总结!wepoker模拟器哪个好用(透视)透视脚本是有挂(总是有挂)在进入wepoker模拟器哪...
透视系统!wepoker-h5... 透视系统!wepoker-h5下载(透视)辅助软件(好像有挂)1、打开软件启动之后找到中间准星的标志...
透视模拟器!wepoker开辅... 透视模拟器!wepoker开辅助能查到吗(透视)游戏下载(总是是有挂);1、上手简单,内置详细流程视...
透视玄学!wepoker究竟有... 透视玄学!wepoker究竟有没有透视(透视)作弊方法(真是有挂)1、透视玄学!wepoker究竟有...
透视透视!wepoker透视版... 透视透视!wepoker透视版下载(透视)辅助器软件下载(果然有挂);wepoker透视版下载是一种...
透视工具!we-poker有人... 透视工具!we-poker有人玩吗(透视)辅助器下载(竟然有挂)1、点击下载安装,we-poker有...