当前位置: 首页 > Web前端 > HTML

@ngrx-router-store在SAP电商云SpartacusUI开发中的作用

时间:2023-03-28 00:52:55 HTML

题目:@ngrx/router-store的作用官网用于绑定AngularRouter和Store连接。在每个路由器导航周期中,会调度多个操作,让您可以监听路由器状态的变化。然后,您可以从路由器的状态中选择数据,为您的应用程序提供额外的信息。安装后:npminstall@ngrx/router-store--save,在package.json中会有一个依赖:actionRouterStore提供了五个按特定顺序调度的导航动作。RouterStore提供的routerReducer使用actions给出的最新路由器状态更新其状态。默认情况下,我们推荐使用我们提供的creator函数。routerRequestAction在每次导航开始时,路由器都会派发ROUTER_REQUEST动作。Spartacus不使用此action.routerNavigationAction在导航期间,在任何守卫或解析器运行之前,路由器将调度ROUTER_NAVIGATION操作。Spartacus中使用了这个动作:navigationtarget:routerNavigatedAction导航成功后,路由器会派发ROUTER_NAVIGATED动作。当事件ROUTER_NAVIGATION被触发时,首页的pageguard和resolver还没有执行:当事件ROUTER_NAVIGATED发生时,跳转已经成功完成。所以nextState是未定义的。所以判断当前是在导航还是正在导航,只需要从store中查看nextState是否为空即可。发生的时序如下:SuccesscaseROUTER_REQUESTROUTER_NAVIGATIONROUTER_NAVIGATEDError/Cancelcase(withearlyNavigationActionTiming):ROUTER_REQUESTROUTER_NAVIGATIONROUTER_CANCEL/ROUTER_ERRORError/Cancelcase(withlateNavigationActionTiming):ROUTER_REQUESTROUTER_CANCEL/ROUTER_ERROR更多Jerry的原创文章,尽在:"汪子熙":