什么是 SAP 电商云 Spartacus UI 的 proxy facade-阿里云开发者社区

开发者社区> -开发者助手-> 正文

什么是 SAP 电商云 Spartacus UI 的 proxy facade

简介: 什么是 SAP 电商云 Spartacus UI 的 proxy facade
+关注继续查看

Proxy Facades


此功能在 3.2 版本引入。


代理外观是一种灵活的机制,可以从可延迟加载的功能模块中抽象出功能,这种功能抽线,可以对应用程序的任何部分完成,例如组件、服务、指令等。


在延迟加载的配置中,Facade 被定义为一个非常薄的层,它只是一个带有一些元数据的空类,并且这个 Facade 动态地创建了一个 Facade 实现的代理。


下图是一个例子:image.png一旦代码的任何部分访问代理外观的任何方法或属性,必要的功能就会在暗地里加载和初始化,并将调用代理到实际实现。


根据设计,代理外观对于延迟加载和急切加载场景是完全透明的。 对于预加载场景,当代码静态链接时,实际实现掩盖了代理提供程序,并且无需任何代理层即可直接访问。


feature module

功能模块允许您将核心业务逻辑与组件一起封装,并在请求任何组件或需要某些逻辑时立即加载它们。 代理外观利用功能模块配置来了解哪个功能包含外观的实现。 每当访问功能的属性或调用方法时,都会在后台加载和初始化功能。


Defining Proxy Facades

本节介绍如何在根入口点中定义代理。


如前所述,代理外观是一个非常薄的层,由一个 JavaScript 类和一些元数据组成,这些元数据应该在根注入器中可用。 然后可以在应用程序的任何预先加载或延迟加载部分中使用这个轻量级注入器。


下面是一个 UserAccountFacade 代理定义的例子,它有一个 get 方法并由 USER_ACCOUNT_CORE_FEATURE 实现:

image.pngimage.png为方便起见,外观同时作为 UserAccountFacade 和 UserAccountService 提供。 这使得覆盖更容易一些(只有 UserAccountService 实现必须被覆盖),并方便急切加载场景,其中 UserAccountFacade 提供者将覆盖默认的外观代理提供者。


实现细节

FacadeFactory 创建一个简单的外观代理类,该类基于方法和属性的配置。


所有方法都必须返回 Observable 对象,否则会被忽略。image.png访问任何属性(必须是 Observable)或调用任何方法都会触发加载由外观代理引用的功能模块。 加载特征后,特征模块注入器用于注入外观实现,该实现在特征模块内部提供,与外观代理具有相同的令牌。 然后调用实现中的相应属性或方法并将其移交给调用者。


也可以使用 async 标志设置为 true 来创建外观工厂。 这种门面会在功能模块初始化后短暂延迟对门面实现的调用,这允许异步门面初始化。 当门面使用异步初始化的 NgRx 存储时,这是推荐的设置。


Default Approach in Spartacus

在 Spartacus 中,外观代理默认定义在根入口点中,这意味着它们静态链接到主包。 因此,以最小的开销,任何组件或服务都可以注入其轻量级代理令牌,而无需知道 Facade 是否是任何延迟加载或预先加载功能的一部分。


通常,facade 定义引用 feature_name_CORE 特征,而默认情况下,特征提供在 feature_name 特征下,并且 feature_name_CORE 用作 feature_name 的别名。 通过这种设计,外观代理在默认配置中工作,其中核心、occ 和组件模块被捆绑到一个延迟加载模块中。 另一方面,很容易拆分这个模块,只加载核心部分(没有组件)来实现细粒度的延迟加载。 这可以通过为 feature_name_CORE 功能定义配置和延迟导入来完成。


后续我会通过一些具体的例子来说明。



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
2870 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
11078 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10672 0
使用SSH远程登录阿里云ECS服务器
远程连接服务器以及配置环境
2437 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
11969 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
3908 0
2450
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载