- SAP 电商云 Spartacus 产品明细页面的 pageCo
- SAP 电商云 Spartacus 产品明细页面的 canAct
- SAP 电商云 Spartacus UI 产品搜索结果的设计明细
- 为什么 SAP 电商云 Spartacus 产品明细页面的自定义
- SAP 电商云 Spartacus UI 产品明细页面路由路径的
- SAP 电商云 Spartacus UI product 明细页
- SAP 电商云 Spartacus 产品明细页面的 OCC AP
- SAP 电商云 Spartacus UI 的 Product C
- 网站上的 breadcrumb 使用场景浅析
- HTML 按钮(button)的 disable 属性和 dis
http://localhost:4200/powertools-spa/en/USD/jerryproduct/3755211/PSR%2010.8%20LI
为什么打开一个 product 明细页面,也调用了 12 次?


看样子是被 Angular router 框架调用的:

原来还真不是多个 roundtrip 重复调用,而是递归调用:

这是一个闭包:


顺便把参数也解析了:

回到 router.js 代码里,现在通过了 noMatch 检测,继续执行。

又要进行第二轮的 match 检测了:

又是一轮递归执行:

现在能够 return 了:

到目前为止已经执行六次了,被调用两次,每次里如上图所示有三个递归,3 × 2 = 6

再次进入 router.js:

三次递归调用:


这里又触发我们的自定义 matcher 了,第三次触发:

又是三个递归调用:

match 通过,创建一个新的 ActivatedRouteSnapshot 对象:

更多Jerry的原创文章,尽在:"汪子熙":

网友评论