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

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

时间:2023-04-05 13:40:22 HTML5

Spartacus2.0版本之前,实现状态持久化的唯一方法是使用一种简单的声明式机制,叫做storageSync,它允许你提供propertieskey来持久化存储.这些持久键用于在您启动应用程序时设置商店中的初始状态。使用Spartacus2.0或更高版本,您可以使用StatePersistenceService,特别是它的syncWithStorage方法来保存店面应用程序的状态。它不像storageSync那样简单,但它使用上下文和专用的onRead回调提供更多控制。您可以将以下选项传递给syncWithStorage函数:key、state$、context$、storageType和onRead。这些选项的工作方式如下:(1)一个键用于区分商店中的一个特征与另一个特征。例如,要存储活动的购物车ID,您可以使用购物车密钥,对于用户会话数据,您可以使用会话密钥。(2)state$是一个可观察对象,它会在您每次要将新值保存到持久性存储时发出一个值。例如,为了在每次活动购物车ID更改时保留活动购物车ID,此可观察对象会发出一个新值。(3)context$是一个可观察对象,它描述了特定状态的有效上下文。例如,活动购物车ID仅对一个基本站点有效。在不同的基础站点上,您要使用不同的购物车。在这种情况下,使用context$,您将使用一个每次更改时都会发出基站点的可观察对象。storageType指定使用的存储类型。默认情况下,存储类型是本地存储,但您可以将其更改为会话存储等。onRead是每次上下文更改时调用的回调。以购物车为例,每次更改基站点时,都会使用从存储中读取的值调用该特定上下文的回调。如果store中没有任何内容,它将发送undefined值。运行时通过APP_INITIALIZER初始化逻辑:返回结果为函数:toPromise最后会触发subscribe:更多Jerry原创文章在这里:《汪子熙》: