SAP 电商云 UI State persistence 状态持久化设计的入口 - initSync

简介: SAP 电商云 UI State persistence 状态持久化设计的入口 - initSync

在 Spartacus 2.0 版之前,实现状态持久性的唯一方法是使用一种称为 storageSync 的简单的声明性机制,它允许您提供属性键以在存储中持久化。 当您启动您的应用程序时,这些持久化的键用于设置存储中的初始状态。 使用 Spartacus 2.0 或更高版本,您可以通过使用 StatePersistenceService,特别是它的 syncWithStorage 方法来保持店面应用程序的状态。 它不像 storageSync 那样简单,但它使用上下文和专用的 onRead 回调提供了更多控制。


您可以将以下选项传递给 syncWithStorage 函数:key、state、 c o n t e x t 、context、context、storageType 和 onRead。


这些选项的工作方式如下:


(1) 键用于区分存储中的一个特征和另一个特征。例如,要存储活动的购物车 id,您可以使用购物车密钥,而对于用户会话数据,您可以使用会话密钥。


(2) state$ 是一个可观察的对象,每次您想将新值保存到持久存储时,它都会发出一个值。例如,为了在每次活动购物车 id 更改时保留活动购物车 id,此 observable 会发出一个新值。


(3) context$ 是一个 observable,它描述了特定状态的有效上下文。例如,活动购物车 ID 仅对一个 base site 有效。在不同的基础站点上,您希望使用不同的购物车。在这种情况下,使用 context$,您将使用每次更改时发出基本站点的 observable。


storageType 指定使用的存储类型。默认情况下,存储类型为本地存储,但您可以将其更改为会话存储等。


onRead 是每次上下文更改时调用的回调。以购物车为例,每次更改基本站点时,都会使用从存储中读取的值调用该特定上下文的回调。如果存储中没有保存任何内容,它将调度 undefined 值。


运行时,该逻辑通过 APP_INITIALIZER 初始化:

image.png返回的 result 是一个 function:image.pngtoPromise 最后会触发 subscribe:image.pngimage.pngimage.png

相关文章
|
1天前
|
前端开发 JavaScript API
React的Context API:全局状态管理的利器
【4月更文挑战第25天】React的Context API解决了深层组件间状态共享的难题,提供全局状态管理方案。通过`Provider`和`Consumer`组件,或结合`useContext` Hook,实现状态在组件树中的传递。最佳实践包括避免过度使用,分离逻辑,以及在必要时与Redux或MobX结合。Context API简化了数据传递,但需谨慎使用以保持代码清晰。
|
7月前
|
存储 前端开发 JavaScript
状态管理(State Management):构建复杂应用的关键要素
在现代应用程序开发中,状态管理是一个至关重要的概念,它用于管理应用程序的数据和状态。无论您是开发Web应用、移动应用还是桌面应用,都需要有效的状态管理来确保应用程序的可维护性和可扩展性。在本博客中,我们将深入研究状态管理的定义、原则、工具和最佳实践,以及如何充分利用状态管理来构建复杂的应用程序。
135 0
|
7月前
|
Web App开发 JavaScript 前端开发
关于 SAP 电商云 Spartacus UI Transfer State 冗余 API 请求发送的讨论
关于 SAP 电商云 Spartacus UI Transfer State 冗余 API 请求发送的讨论
42 0
|
6月前
关于 SAP 电商云 Spartacus UI Navigation Service 执行的一些明细
关于 SAP 电商云 Spartacus UI Navigation Service 执行的一些明细
47 0
|
7月前
|
存储
SAP 电商云 Spartacus UI 设置 Delivery Mode 的时序分析和一个竞争条件问题分享
SAP 电商云 Spartacus UI 设置 Delivery Mode 的时序分析和一个竞争条件问题分享
61 0
|
7月前
SAP 电商云 Spartacus UI 设置 delivery mode 在 3G 慢速网络下的排队效果
SAP 电商云 Spartacus UI 设置 delivery mode 在 3G 慢速网络下的排队效果
39 0
|
7月前
SAP 电商云 Spartacus UI delivery mode 页面设计的结构分析
SAP 电商云 Spartacus UI delivery mode 页面设计的结构分析
30 0
|
7月前
|
JavaScript
SAP 电商云 Spartacus UI Event Service 实现明细介绍
SAP 电商云 Spartacus UI Event Service 实现明细介绍
39 0
|
7月前
|
资源调度
SAP 电商云 Spartacus UI Component 级别的延迟加载实现(Lazy Load)
SAP 电商云 Spartacus UI Component 级别的延迟加载实现(Lazy Load)
36 0
|
9月前
|
数据采集 存储 缓存
App数据持久化管理设计
合理管理App的持久化数据,防止数据库框架的强依赖
104 0
App数据持久化管理设计