SAP UI5 初学者教程之四:XML 视图初探
Jerry 从 2014 年加入 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,曾经在 SAP 社区和“汪子熙”微信公众号上发表过多篇关于 SAP UI5 工作原理和源码解析的文章。
在 Jerry 这篇文章对 SAP UI5 一无所知的新手,从哪些材料开始学习比较好? 曾经提到,Jerry 也是从 SAP UI5 菜鸟一路走过来,深知只有 ABAP 开发背景的开发者,向 SAP UI5 开发领域转型的不易,因此我在业余时间设计了这份适合 SAP UI5 初学者的学习教程,把开发一个完整的 SAP UI5 应用的流程,拆分成若干个步骤,力求每个步骤里,把涉及到的知识点都涵盖到。这些知识点可能不像我的 UI5 源码分析系列文章那么深入,但力求浅显易懂,便于 SAP UI5 初学者理解。
本教程每一个步骤的源代码,都存放在我的 Github 上,分别用文件夹 01,02,03 等等来标识。
每一个步骤均是前一步骤的基础上,添加了若干新特性。建议零基础或者对 SAP UI5 知之甚少的初学者,按照顺序从第一个步骤开始循序渐进地学习,把这些代码下载到本地,配合教程的文字讲解,自己动手,以加深理解。
大家如果对教程的每个步骤有任何疑问,欢迎在教程对应的步骤文章里给我评论,进行留言。
本教程的前三个步骤,我们要么直接在 index.html 里,利用原生的标签 div 显示文本,要么创建 SAP UI5 Text 控件实例,再将其放置于 HTML 占位符 div 标签里。
从本步骤开始,我们会接触 SAP UI5 非常重要的概念:XML 视图,这个概念也是 SAP UI5 MVC 三大支柱之一:View 即视图层。
本步骤的代码:
https://github.com/wangzixi-diablo/ui5-tutorial/tree/main/04
同前一步骤相比,本步骤的 index.html 没有任何修改。
在 SAP UI5 框架完成初始化之后,执行通过 data-sap-ui-oninit 指定的我们自定义的 module,即位于 webapp 文件夹下面的 index.js 实现的同名 module.
在本教程第三步骤 SAP UI5 初学者教程之三:开始接触第一个 SAP UI5 控件里,我们在 index 模块里,新建了一个 Text 控件实例,并将其放置到 id 为 content 的占位符 div 标签里。
本步骤我们更进一步,新建一个 XML 视图实例,将该视图实例放置到占位符 div 标签页里。
index.js 代码如下:
代码的四处关键点
(1) XMLView.create:该方法创建一个视图实例
(2) create 方法需要一个输入参数,该输入参数需要包含待创建的 xml 视图的名称和路径。
注意:代码第6行 viewName 的值,其中 sap.ui5.walkthrough 代表命名空间,view 代表我们 webapp 文件夹下的同名文件夹 view,而 App,对应了 view 文件夹里的 App.view.xml. 也就是说,命名空间后面的 view.App, 必须要和 SAP UI5 工程里对应的文件夹和视图文件名称匹配,否则运行时会报错。
(3) XMLView.create 的创建,并不会像步骤三创建一个简单的 Text 控件一样,调用 new Text 之后会立即返回创建好的控件实例,而是一个异步执行过程。
XMLView.create 返回的是一个 Promise 对象,待 XML 视图实例真正创建完毕之后,这个 Promise 对象的then 方法里传进去的回调函数会被执行。该回调函数的输入参数,即上图第7行的 oView,正是创建成功的 XML 视图实例。
(4) 调用 XML 视图实例的 placeAt 方法,将 XML 视图放到 id 为 content 的占位符 div 标签里。
下面我们再来看 App.view.xml 里的内容。
这个代码有上图标注的四处关键点。
关于这些关键点的详细介绍,请参考我的文章:SAP UI5 初学者教程之四:XML 视图初探