标题:@ngrx/router-store 的作用

官网

用于将 Angular Router 与 Store 连接的绑定。 在每个路由器导航周期中,会分派多个动作,让您可以监听路由器状态的变化。 然后,您可以从路由器的状态中选择数据,为您的应用程序提供附加信息。

安装:

npm install @ngrx/router-store --save

之后,在 package.json 会出现一个依赖:

action

Router Store 提供了五个按特定顺序调度的导航操作。 Router Store 提供的 routerReducer 使用 actions 给出的最新路由器状态更新其状态。 默认情况下,我们建议使用我们提供的 creator function.

routerRequestAction

在每次导航开始时,路由器将调度 ROUTER_REQUEST action.Spartacus 没有用到这个 action.

routerNavigationAction

在导航期间,在任何 guard 或 resolvers 运行之前,路由器将调度 ROUTER_NAVIGATION 操作。

Spartacus 里使用到了这个 action:

navigation target:

routerNavigatedAction

成功导航后,路由器将调度 ROUTER_NAVIGATED action.

事件 ROUTER_NAVIGATION 触发时,home page 的 page guard 和 resolver 还没有执行:

事件 ROUTER_NAVIGATED 发生时,跳转已经成功完成了。所以 nextState 为 undefined.

因此,判断当前是否处于 navigating 即正在导航,只需要从 store 里,检查 nextState 是否为空就行了。

发生的时序如下:

Success case

  • ROUTER_REQUEST
  • ROUTER_NAVIGATION
  • ROUTER_NAVIGATED

Error / Cancel case (with early Navigation Action Timing):

  • ROUTER_REQUEST
  • ROUTER_NAVIGATION
  • ROUTER_CANCEL / ROUTER_ERROR

Error / Cancel case (with late Navigation Action Timing):

  • ROUTER_REQUEST
  • ROUTER_CANCEL / ROUTER_ERROR

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

@ngrx/router-store 在 SAP 电商云 Spartacus UI 开发中的作用相关推荐

  1. SAP 电商云 Spartacus UI 里如何捕捉语言设置的更改

    我们知道在 SAP 电商云 Spartacus UI 里,用户可以通过下拉菜单更改当前访问 site 的语言: 监控语言变化的代码: this.subscription.add(this.langua ...

  2. SAP 电商云 Spartacus UI 从 CMS 取回 slots 和 component 之后的处理

    从前一篇文章SAP 电商云 Spartacus UI 的双重 layout 配置层设计 我们得知,Spartacus 层面的 layout-config.ts 可以控制 page template 应 ...

  3. SAP 电商云 Spartacus UI 产品搜索结果的设计明细

    我们使用如下 url 访问 SAP 电商云 Spartacus UI 产品搜索页面: http://localhost:4000/electronics-spa/en/USD/search/sony ...

  4. Mobile first 设计思路在 SAP 电商云 Spartacus UI 中的设计体现一例

    关于 Mobile First 的概念,请查看我这篇文章:什么是前端开发中的 mobile first 策略. 下图是 SAP 电商云 Spartacus UI 的搜索结果页面: 其布局设计:temp ...

  5. SAP 电商云 Spartacus UI ComponentDataProvider defer 工厂函数

    为什么 this.componentService.getItems 最后就触发到 Component-data.provider.ts 工厂函数的执行了? 29行的 getService: getS ...

  6. 在 SAP 电商云 Spartacus UI 里手动注入 module 的几种排列组合

    先把所有的排列组合罗列如下: (1) 通过构造函数注入 QuickOrderFacade,但不调用其方法 (2) 通过构造函数注入 QuickOrderFacade,调用其方法 (3) 手动通过 in ...

  7. SAP 电商云 Spartacus UI Proxy Facade 的一个实际例子

    如何理解 SAP 电商云 Spartacus UI 中的 proxy facade? Jerry 这篇文章什么是 SAP 电商云 Spartacus UI 的 proxy façade提供了理论上的解 ...

  8. SAP 电商云 Spartacus UI Quick Order 主页的实现

    存货单位(英語:stock keeping unit,SKU/ˌɛsˌkeɪˈjuː/),也翻译为库存单元,是一個會計學名詞,定义为库存管理中的最小可用单元,例如纺织品中一个SKU通常表示规格.颜色. ...

  9. SAP 电商云 Spartacus UI 产品明细页面路由路径的自定义配置

    如下图所示,为了减少 SAP 电商云 Spartacus 客户实施时不必要的配置,Spartacus 将不少页面的路由路径的默认配置,定义在如下的 default-routing-config.ts ...

最新文章

  1. 倾斜模型精细化处理_推荐一款好用的倾斜摄影精细化单体建模软件——OSketch...
  2. windows 导入表(动态调用)
  3. 【观点】微博的弊端和它的真正意义
  4. Linux下弹出CDROM的程序(参考网上程序)
  5. javascript 忍者秘籍读书笔记(二)
  6. java log4j 多线程_针对log4j 1.2.15中的并发锁问题,到底是io瓶颈,还是锁竞争导致线程block?...
  7. 服务器是计算机网络的信息与管理中心,网络信息中心主要职能(8页)-原创力文档...
  8. java整人代码大全_给大家分享个整人代码。很实用
  9. 伯克利校长全员邮件:上课先用 Zoom,还不行就发电报!
  10. android手机短信诈骗原理,安卓系统均存短信欺诈漏洞 专家:系统先天不足
  11. 怎么在手机上取消双重认证_谁知道苹果手机双重认证怎么弄?手机号都不知道谁的?...
  12. 黑暗爆炸 #1059. [ZJOI2007]矩阵游戏
  13. 银联--网联--聚合支付
  14. Android字节码插桩
  15. 哈尔滨工业大学计算机系统大作业
  16. vscode更新之后rg.exe占用cpu过高
  17. android photoview 图片放大缩放功能 ImageView
  18. 制作辉光钟的一些感想
  19. 正点原子linux阿尔法开发板使用——platform平台总线模型
  20. 儿童语言发育迟缓分类中C群d是指,(S—S法)语言发育迟缓检查(CRRC版)

热门文章

  1. java反射模式_Java反射机制详解
  2. 企业门户项目实施方法论(IPS方法简介),适用于企业门户项目的项目管理方法论(上篇)...
  3. 解决linux登录后总是时间过会就断开(解决ssh登录后闲置时间过长而断开连接)...
  4. 天了噜,Java 8 要停止维护了!
  5. 持续集成之 Jenkins 的安装与配置(一)
  6. JavaScript强化教程 —— JavaScript 总结
  7. [reprint]如何编写引导程序 Hello World
  8. eclipse中修改内存
  9. javaweb入门笔记(4)-request和response
  10. 如何遍历当前进程中的AppDomain