
在一个典型的主从页面里,我们经常需要先描述目标地址,再决定是把它放进链接、执行页面跳转、替换浏览器历史,还是交给权限检查逻辑处理。Angular 把这些需求收拢到了UrlTree周围,因此从 Angular 转到 SAP UI5 时,很自然会寻找一个同名或同职责的类。直接给出判断,SAP UI5 没有一个能够与@angular/router里的UrlTree一一对应的标准公共类型。SAP UI5 能完成UrlTree所覆盖的大部分实际任务,但这些能力被拆分到了sap.ui.core.routing.Router、sap.ui.core.routing.Route、sap.ui.core.routing.HashChanger、路由参数对象,以及 SAP Fiori Launchpad 的 intent-based navigation 服务之中。最接近UrlTree的不是某一个 UI5 类,而是一组协作机制。要看清这个差异,需要先把 AngularUrlTree看成一种 URL 数据模型,而不是单纯的 URL 字符串。Angular 官方 API 将它定义为解析后的 URL,内部包含根UrlSegmentGroup、查询参数、片段以及查询参数映射。Angular 还把路由状态视为树,把 URL 视为这棵状态树的序列化结果。一个UrlTree可以表达主出口、命名出口、嵌套路径、矩阵参数、查询参数和 fragment。官方示