关于javascript:如何检测-SAP-电商云-Spartacus-UI-当前正处于导航状态

应用 routing.selector.ts 里的 isNavigating:

设计原理:Spartacus route reducer 里针对 ROUTER_NAVIGATION 和 ROUTER_NAVIGATED 进行状态迁徙:

当接管到 ROUTER_NAVIGATION(跳转正在进行) 事件时,将状态的 nextState 字段设置成 action payload:

当接管到 ROUTER_NAVIGATED(跳转曾经实现) 事件时,将状态的 nextState 字段设置成 undefined:

回到本文结尾的 API,如果 nextState 不为空,阐明正在 navigating.

selector 就是纯函数,可能返回 state 的某一个切片的数据。

只有通过 createSelector 创立的 selector,才具备记忆性能(memoized),即对于雷同的输出,肯定会返回雷同的输入。

为什么 pageMetaService 会触发到 Router State 的 selector?

看看 this.meta$ 的数据源:

meta$ 来自 this.cms.getCurrentPage:

从全局 store 里调用 RoutingSelector 的 getPageContext 办法:

最初 selector 被调用:

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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理