sap.ui.core.IAsyncContentCreation 这个标记接口在 SAP UI5 框架中的应用

简介: 这是 sap.ui.core.UIComponent 子类的标记接口(Marker interface)。

这是 sap.ui.core.UIComponent 子类的标记接口(Marker interface)。

什么是标记接口?

可以查阅我这篇文章:ABAP和Java的tag(marker) interface。

简单地说,Marker interface 是编程语言在不支持注解(annotation)的情况下, 通过接口的概念,来为一个类或者函数(JavaScript 里的 function)增添元数据的技术手段。

回到本例,标记了接口 sap.ui.core.IAsyncContentCreationUIComponent 子类,说明 SAP UI5 框架能够完全异步地创建其实例。该接口将隐式设置 Component 的 rootView 和路由器配置为异步方式创建。

在 Component 同步创建模式下,SAP UI5 框架的 createContent 函数直接返回创建好的实例。


所谓 Component 的异步创建,即是 SAP UI5 框架的 createContent 函数,返回一个 Promise. 这个 Promise 也将被链接到 Component.create 工厂方法的结果 Promise 中。


我们可以单步调试来观察运行时,SAP UI5 框架是如何处理这个 marker interface 的。


XMLTemplateProcessor.js 里的逻辑,负责将 SAP UI5 工程里的 XML 视图的源代码,解析成树形结构,这个树形结构的每一个节点就是一个 SAP UI5 控件定义,在运行时就是一个个 SAP UI5 控件实例。XMLTemplateProcessor 负责创建这些控件实例。


下图代码:

var bIsAsyncComponent = oOwnerComponent && oOwnerComponent.isA("sap.ui.core.IAsyncContentCreation");

意思是检查当前待创建的 Component,源代码里是否在 metadatainterfaces 数组里,定义了 sap.ui.core.IAsyncContentCreation 这个标记接口。如果定义了,布尔变量 bIsAsyncComponent 的值为 true.

image.png

根据这个布尔变量的值,分别进入异步创建实例和同步创建实例两个分支。

image.png

同样的逻辑还存在于 UIComponent.createContent 函数内。

9.png

总的来说,同步或者异步创建对 SAP UI5 应用开发人员的业务逻辑代码编写没有影响,这是 SAP UI5 框架的内部实现差异。


UI5 中的 XML 模板是使用 XML Preprocessor 创建的。 XML 模板将与元模型和元上下文一起传递给 XML 预处理器。 XML 预处理器用于创建视图和片段。


目录
相关文章
|
1月前
|
前端开发 JavaScript API
SAP UI5 sap.ui.require.toUrl 的作用介绍
SAP UI5 sap.ui.require.toUrl 的作用介绍
28 0
|
1月前
|
JSON 前端开发 测试技术
SAP UI5 sap.ui.core.util.MockServer.simulate 方法介绍
SAP UI5 sap.ui.core.util.MockServer.simulate 方法介绍
21 0
|
1月前
使用 SAP UI5 Event Bus 机制,修复 SAP UI5 分页显示数据的一个 bug 试读版
使用 SAP UI5 Event Bus 机制,修复 SAP UI5 分页显示数据的一个 bug 试读版
20 0
|
3月前
|
缓存 JavaScript 前端开发
如何理解 SAP UI5 的 sap.ui.define 函数?
如何理解 SAP UI5 的 sap.ui.define 函数?
47 0
|
6月前
|
移动开发 开发框架 JavaScript
SAP UI5 应用里 /sap/ui/thirdparty/sinon.js 的作用
SAP UI5 应用里 /sap/ui/thirdparty/sinon.js 的作用
51 0
|
6月前
|
移动开发 HTML5
SAP UI5 命名空间 com.sap.vocabularies.UI.v1 的作用介绍
SAP UI5 命名空间 com.sap.vocabularies.UI.v1 的作用介绍
51 0
|
6月前
|
中间件 开发工具
使用 SAP Fiori Tools 提供的中间件导入本地下载的 SAP UI5 库文件来启动 SAP UI5 应用试读版
使用 SAP Fiori Tools 提供的中间件导入本地下载的 SAP UI5 库文件来启动 SAP UI5 应用试读版
82 0
|
2月前
|
JSON 数据格式
SAP UI5 Class sap.ui.model.Context 的作用介绍
SAP UI5 Class sap.ui.model.Context 的作用介绍
30 0
|
2月前
|
中间件
SAP UI5 Tooling 实战:动手创建自己的 Custom UI5 Server Middleware 试读版
SAP UI5 Tooling 实战:动手创建自己的 Custom UI5 Server Middleware 试读版
18 0
SAP UI5 Tooling 实战:动手创建自己的 Custom UI5 Server Middleware 试读版
|
3月前
|
移动开发 开发框架 JavaScript
什么是 SAP UI5 项目 ui5.yaml 文件中的 specVersion 字段
什么是 SAP UI5 项目 ui5.yaml 文件中的 specVersion 字段
18 0

热门文章

最新文章