Spartacus Storefront 里的 currency 和 language 的 store 设计(1)

简介: Spartacus Storefront 里的 currency 和 language 的 store 设计

currency 和 language 都持久化在 local storage 里了:


image.png


app.config.ts?



image.png



Failing E2E tests: The site context tests are failing


涉及到的文件:


  • currency-checkout-page.e2e-spec.ts
  • language-checkout-page.e2e-spec.ts



文件路径:projects\storefrontapp-e2e-cypress\cypress\integration\regression\site-context\currency\currency-cart-page.core-e2e-spec.ts


一些相关的函数和文件:


  • default-site-context-config.ts
  • site-context-config-initializer.ts



image.png

SiteContext 是一个 interface,定义了三个方法:


export interface SiteContext<T> {
  getAll(): Observable<T[]>;
  getActive(): Observable<string>;
  setActive(isocode: string);
}



Site Context 的实现位于 core 文件夹内。选择器是用于获取存储状态切片(slice)的纯函数,在 Spartacus 源代码实现中有着广泛的用途。


store

照例是分了好几个子文件夹。


image.png



导入 EffectsModule 和 StoreModule 两个 module:


image.png



注意 StoreModule.forFeature 的第二个参数,传入一个 ActionReducerMap 或者 InjectionToken:



image.png



在 Spartacus 里,我们使用的是一个 InjectionToken:



image.png



export const reducerToken: InjectionToken<ActionReducerMap<SiteContextState>> =
  new InjectionToken<ActionReducerMap<SiteContextState>>('SiteContextReducers');




相关文章
|
12月前
|
缓存 前端开发 JavaScript
基于 Spartacus 的 Angular Storefront 性能优化建议
基于 Spartacus 的 Angular Storefront 性能优化建议
|
搜索推荐 JavaScript 前端开发
Spartacus 开源项目给 SAP Commerce Cloud Storefront 共享的一些有用的特性介绍
Spartacus 开源项目给 SAP Commerce Cloud Storefront 共享的一些有用的特性介绍
|
12月前
|
安全
Spartacus Storefront 里如何在 SmartEdit 访问环境下暂时禁用 Early login
Spartacus Storefront 里如何在 SmartEdit 访问环境下暂时禁用 Early login
|
12月前
|
前端开发 安全 API
Above-the-Fold Loading 加载机制在 Spartacus Storefront 里的应用
Above-the-Fold Loading 加载机制在 Spartacus Storefront 里的应用
|
12月前
|
监控 前端开发 JavaScript
什么是 Spartacus Storefront B2B store 的 My Company 菜单
什么是 Spartacus Storefront B2B store 的 My Company 菜单
|
12月前
|
JSON 数据格式
Spartacus Storefront 产品明细页面里的 Add to Wish 动态隐藏问题
Spartacus Storefront 产品明细页面里的 Add to Wish 动态隐藏问题
|
12月前
|
缓存 负载均衡 前端开发
SAP Spartacus 和 Sticky session 相关的话题
SAP Spartacus 和 Sticky session 相关的话题
|
12月前
|
存储
SAP Emarsys 和 SAP Spartacus 的集成
SAP Emarsys 和 SAP Spartacus 的集成
|
12月前
|
API 开发者
Google Tag Manager (GTM) 和 Adobe AEPL 在 SAP Spartacus 中的应用
Google Tag Manager (GTM) 和 Adobe AEPL 在 SAP Spartacus 中的应用
下一篇
无影云桌面