OccAdapters 和 Services 在使用上有什么区别?
What are the usage difference between OccAdapters and Services?
我有一个关于斯巴达克斯的问题。我用的是20.05版本
this.occCartAdapter.load('xxxxx@gmail.com', '00001002').subscribe(data => {
console.log(data);
});
this.cartService.getActive().subscribe(data => {
console.log(data);
});
这两个函数最终得到相同的结果。它们有什么区别?当我尝试从后端调试这些函数时,我只能捕获(调试)occCartAdapter。为什么 cartService 不是触发后端?
Spartacus 中有几个层负责加载、存储和公开后端数据。这是为了健康的分层架构以及 fine-grained 可扩展性。您可以在 https://sap.github.io/spartacus-docs/connecting-to-other-systems/.
了解更多关于这些层的信息
一般来说,cartService
表示购物车域的外观层,而 occCartAdapter
表示购物车域的默认 OCC 适配器。如果您想 适应 另一个系统,您可以 override/customise 适配器而不用担心存储、公开等问题
数据将流经所有这些层。所有域(产品、购物车、用户)都使用以下层:
-> component
-> (component service)
-> service (AKA facade)
-> ngrx-action
-> ngrx-effect
-> connector
-> adapter
-> angular
-> http client (angular)
-> API (OCC)
不建议直接与较低级别的服务直接交互,因为中央存储不会知道数据。您将不再拥有集中存储数据的优势。
也就是说,对于新功能,您绝对不需要复制这些层。这些层部分用于 fine-grained 可扩展性,这对于您的自定义而言是不需要的。我推荐的最小层是一个(单例)服务,它保存您的组件的数据。
我有一个关于斯巴达克斯的问题。我用的是20.05版本
this.occCartAdapter.load('xxxxx@gmail.com', '00001002').subscribe(data => {
console.log(data);
});
this.cartService.getActive().subscribe(data => {
console.log(data);
});
这两个函数最终得到相同的结果。它们有什么区别?当我尝试从后端调试这些函数时,我只能捕获(调试)occCartAdapter。为什么 cartService 不是触发后端?
Spartacus 中有几个层负责加载、存储和公开后端数据。这是为了健康的分层架构以及 fine-grained 可扩展性。您可以在 https://sap.github.io/spartacus-docs/connecting-to-other-systems/.
了解更多关于这些层的信息一般来说,cartService
表示购物车域的外观层,而 occCartAdapter
表示购物车域的默认 OCC 适配器。如果您想 适应 另一个系统,您可以 override/customise 适配器而不用担心存储、公开等问题
数据将流经所有这些层。所有域(产品、购物车、用户)都使用以下层:
-> component
-> (component service)
-> service (AKA facade)
-> ngrx-action
-> ngrx-effect
-> connector
-> adapter
-> angular
-> http client (angular)
-> API (OCC)
不建议直接与较低级别的服务直接交互,因为中央存储不会知道数据。您将不再拥有集中存储数据的优势。
也就是说,对于新功能,您绝对不需要复制这些层。这些层部分用于 fine-grained 可扩展性,这对于您的自定义而言是不需要的。我推荐的最小层是一个(单例)服务,它保存您的组件的数据。