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

浅谈FioriFundamentals与SAPUI5WebComponents的关系

时间:2023-03-28 00:19:28 HTML

最近的工作中,笔者受邀给一个团队讲述了SAP开发技术的演进史。我的讲课是按照以下主题来介绍的:其中,SAP的技术回顾和演进,我的想法是从前到后介绍。我画了一张很简单的图:根据作者在社区发布的信息,我个人总结Fiori的两个发展方向为:(1)兼容性,即通过FioriFundamentals,使用非UI5开发框架前端-端开发者也可以用自己喜欢的技术开发符合FioriUX的应用。(2)轻装上阵,即通过SAPUI5WebComponents,不仅可以像之前的UI5控件库一样继续提供很多开箱即用的UI控件,还可以避免前端应用对UI5框架。我们来看看上面提到的两个新概念。FioriFundamentals看看SAP官网的权威定义:上面定义的一些要点:(1)FioriFundamentals在前端应用中起到轻量级表现层的作用,可以和Angular等前端框架一起使用、反应和Vue。(2)FioriFundamentals不是一项新的UI技术,也不会取代UI5,而是CSS和HTML标签的集合,使开发者能够使用他们喜欢的UI框架来开发具有FioriUX风格的应用程序。FioriFundamentals是CSS和HTML标签页的合集,我们来看一个具体的例子。这是FioriFundamentals部署在CDN上的CSS:这是SAPFioriFundamentals帮助文档中提到的绘制表格的标签:如何在Vue应用中使用这些标签:至于为绘制的表格添加事件处理机制这个标签,它的方法和纯Vue应用完全一样,所以一个传统的Vue开发者,在FioriFundamentals的帮助下,几乎不需要额外学习就可以开发SAPFiori应用的前端界面。SAPUI5WebComponents最近在SAP社区有一篇关于WebComponents的博客:UI5WebComponents-theBetaisthere:正如博客文章的标题所说,SAP最近发布了UI5WebComponents的Beta版本,并邀请了大多数SAP开发人员生态系统试用并提供反馈。SAPUI5WebComponents是SAP根据WebComponents标准规范,将之前SAPUI5控件库中的控件重新实现的产物。相信了解SAPUI5的朋友,看完我上面的描述,脑海中会浮现出这些问题:什么是WebComponents标准?为什么SAP要做这个重新实现?重新实施的产品是什么?关于第一个问题,直接访问WebComponents官网即可找到答案。程序员都知道以org结尾的网站喜欢用几百页甚至几千页来定义各种技术规范,WebComponents也不例外:https://www.webcomponents.org...前端组件化一直是一种前端生态中最热门的话题,Angular、React、Vue,前端三驾马车,都有自己的组件实现,而webcomponents.org上定义的规范其实提供了一个标准,只有符合这个标准的才行只有其中的实现才算是通用的组件化实现,现代所有浏览器都可以支持。该规范的内容也托管在github上:它包含四大标准:ShadowDOM、CustomElements、HTMLTemplates和CSSchanges。SAPUI5WebComponents的实施当然符合这些标准。第二个问题是SAP开发UI5WebComponents的动机。作者个人观点:为客户和合作伙伴提供更灵活的UI5控件使用方式,避免对UI5框架的依赖。比如我们要使用UI5控件库中提供的按钮控件,即使我们只在XML视图中写一行简单的定义,借助SAPUI5WebComponents,开发者也可以使用UI5直接不用在控件中导入UI5框架。SAPUI5WebComponents可以在任何前端框架中使用,也就是下图中突出显示的最后一句话。此时,当然需要回答第三个问题。SAPUI5Web组件到底是什么?上图传达的关键点:SAPUI5WebComponents并不是基于UI5框架。也就是说,它与UI5框架没有任何依赖关系,可以独立使用。SAPUI5WebComponents不是SAPUI5框架的继承者,而应该被看作是后者的补充。将UI5控件库提供的控件在HTML层面暴露给消费者,而不是传统方式的API层面暴露。这样UI5WebComponents就可以直接在其他前端框架中使用,而不需要依赖于UI5框架。我们来看一个具体的例子:在浏览器中打开如下HTML页面,你会看到一个UI5按钮。单击时弹出的按钮实例的innerHTML属性值。这是SAPUI5Web组件的最简单的HelloWorld示例。在示例中,我们使用了SAPUI5WebComponents的自定义标记。对于前端应用开发者来说,这个自定义标签和W3C中的button标签没有区别,至少在消费上是这样。.关于UI5WebComponents中的等自定义标签的详细说明,可以查看SAP帮助文档:在运行时,就像在UI5框架中使用控件一样,还是有专门的ButtonRenderer负责生成按钮的原生HTML代码:从运行时生成的HTML源代码不难发现,UI5WebComponents的自定义HTML标签只是起到了占位符(placeholders)的作用,实际上承载的是实际的按钮用户可以在运行时与上面的ButtonRenderer生成的HTML原生按钮标签进行交互。需要强调的是,上述ButtonRenderer生成的运行时按钮实例仍然满足与使用UI5框架以传统方式绘制的控件相同的特性,例如SAP以传统方式保证的所有产品标准,例如Accessibility,SAPUI5中的国际化等支持在Web组件中继续,无需应用程序开发人员进行额外编程。在本地使用npminstall@ui5/webcomponents命令安装UI5WebComponents后,可以找到最简单的组件实现Button.js,了解SAP是如何基于WebComponents标准,使用支持的mobule和class等特性通过ES6。自定义标签。最后,SAPUI5WebComponents的使用场景有哪些?适用场景有两种:在没有使用前端框架开发的简单静态页面中,如果想添加一些可以提供用户交互的控件,可以考虑使用SAPUI5WebComponents。在已有的基于其他前端开发框架的Web应用中,如果需要一些无需重新造轮子即可与用户交互的控件,可以去SAPUI5WebComponent官网寻找。另一方面,SAP仍然推荐SAPUI5框架用于开发企业级复杂性和响应式前端应用程序。最后,可能有小伙伴会有疑问,fundamental-vue到底算FioriFundamentals还是WebComponent?一张图回答:总结本文介绍了SAPFiori技术演进的两个前沿方向:FioriFundamentals和SAPUI5WebComponents。前者允许前端开发者使用自己喜欢的框架来开发带有FioriUX的应用程序,而后者则是在依赖SAPUI5框架的前提下,提供了大量开箱即用的控件。