首页 > 其他分享 >用 React 结合 SAP UI5 Web Components 来开发 SAP Fiori 应用

用 React 结合 SAP UI5 Web Components 来开发 SAP Fiori 应用

时间:2024-04-19 16:56:27浏览次数:24  
标签:Web Component React UI5 Fiori SAP

用 React 结合 SAP UI5 Web Components 来开发 SAP Fiori 应用

用 React 结合 SAP UI5 Web Components 来开发 SAP Fiori 应用

阿里云开发者 阿里云开发者 已认证账号   6 人赞同了该文章
简介:用 React 结合 SAP UI5 Web Components 来开发 SAP Fiori 应用

在 Fiori Fundamentals 和 SAP UI5 Web Component 诞生之前,SAP UI5 是开发SAP Fiori应用唯一可供选择的前端框架。

 

很显然SAP对前端领域蓬勃发展的Vue,Angular,React这三驾马车并未熟视无睹,这才有了Fiori Fundamentals和SAP UI5 Web Component的问世。

 

什么是 Web Components?




Web Components 是浏览器内置的 UI 元素框架。 它具有 0kB 的占用空间,并且截至今天在所有主要浏览器中都可用。 Web 组件通过封装内容 (HTML)、表示 (CSS) 和行为 (JS) 的自定义 HTML 标记来增强浏览器的标准词汇。 Web 组件构建在以下 Web 平台 API 之上:自定义元素、Shadow DOM、ES 模块和 HTML 模板。 由于 Web 组件依赖于所有现代浏览器的 Web 标准支持,它们的好处是可以与大多数开箱即用的基于 HTML 的 Web UI 框架一起工作, 当然也就包括了 SAP UI5.

 

什么是 SAP UI5 Web Components?




UI5 网页组件

UI5 Web Components 在原生 API 之上添加了 enterprise-flavored sugar,即对企业级前端应用开发的支持。

 

虽然开发人员可以使用 Vanilla JS 轻松开发 Web 组件,但某些企业级软件的标准,实现起来可能有点麻烦。 因此,UI5 Web Components 为简化和流线化 Web Components 的开发增加了一些便利:

 

用于声明可用属性、插槽和事件的元数据

生命周期钩子能够在正确的时间注册事件处理程序

同步属性和属性,增强插槽处理

使用以标记为中心的句柄语法来编写渲染器的声明式语法

帮助开发人员使 UI 元素易于访问、全球化、主题化和安全的实用程序

除此之外,UI5 Web Components 已经为企业级前端应用程序开发提供了一套全面的 UI 元素,并且它们在 Apache 2.0 许可下作为开源免费提供。

 

如今 SAP UI5 Web Component 也发布了Beta版。

 

0131b0c361c21ebb7917048c893bf0d5.png

 

 

3da04f2125e534b2ba7893f609fc4678.png

 

那么SAP的工程师们经过了一年的努力后,SAP UI5 Web Component到底有何进展呢?我们一起来看一下。

 

SAP官方 Github上,对UI5 Web Component的定义是:借助它,可以使用自己喜欢的前端框架来开发SAP Fiori应用。

 

77ad71bafaed0a36487197459a50a3e5.png

 

打开 UI5 Web Component for React的官网,可以看到 所有可用的React Component. React开发人员可以像使用React原生Component完全一致的方式来使用这些SAP包装过的React组件。

 

5036983e6b56045ad7c7bb04f2d4ec8a.png

 

随便浏览一下,能发现SAP提供了丰富的针对React使用的Component库:

 

4cb694ec2e9a3a01aaef8262c2d7e5b5.png

 

选中每个框架,点击Docs,就能看到在React应用里导入这些Component的源代码:

 

5036983e6b56045ad7c7bb04f2d4ec8a.png

 


import { BarChart } from '@ui5/webcomponents-react-charts/lib/BarChart';

这和导入React原生的Component方法没有区别。如此一来,一个掌握了React开发技能的技术人员,几乎不需要任何学习成本,就能迅速上手使用这些SAP提供的Component来开发Fiori应用。所有和User Experience相关的因素,应用开发人员都无需考虑,这一切全部由SAP UI5 Web Component包办了。

 

说了这么多,还是来动手创建一个Hello World应用吧。

 

用命令行基于SAP预定义的模板创建一个react应用。React开发的全家桶会自动被该命令创建,给开发人员省去了各种搭建React开发环境的负担。

 

npx create-react-app my-app --template @ui5/cra-template-webcomponents-react

 

a4ef6486b6b191f0d91ea3c78de6a80f.png

 

接下来就是纯React开发工作了。

 

创建一个只有一行实现的React Component:

 

e091195c24830158db874dc76d8318d4.png

 

导入到React应用App.js里:

 

b697d146c52230d6e57e4bc002d6085b.png

 

然后npm start,浏览器里就能看到这个React应用的效果了。平平无奇,对吗?

 

efa5d642583f8d530ff69331e7874278.png

 

那么看看下面这个应用,是不是外观很像SAP Fiori?

 

7031b9ebe7be2bac80661c55622817e6.png

 

我把该应用的源代码放到了 github上,下面只简述要点。

 

浏览器里一眼就能发现,这个React页面用到了Line Chart和List两个组件,但实际上这个React应用还演示了不同Component之间的跳转,路由,以及图标的显示等功能,因此导入的组件远远不止Line Chart和List.

 

下图是从@ui5/webcomponents导入的全部组件列表:

 

4f2b84fa4da6c9b5946d9f1c666aadc5.png

 

以LineChart为例,从@ui5/webcomponents导入后,采用React的语法,和我们在UI5原生的XML视图里使用SAP UI5提供的标签一样的方式,在React应用里使用LineChart标签:

 

7ec0f6336be656ec57aed7fbfa924ab6.png

 

这个LineChart的渲染还是采用HTML5的原生标签canvas实现:

 

f670de6c0754683b641de721a3552dcf.png

 

如果对其实现感兴趣,可以到node_modules文件夹下,根据路径@ui5/webcomponents-react-charts找到实现源文件,通过阅读源代码来学习:

 

95bc6909f3ee3b4a6b840b73549c23a3.png

 

 

89049f1d5dd0b55dd8e97f1b2da0194e.png

 

有了SAP UI5 Web Component,如今在Fiori应用的开发领域里,企业的选择将更加灵活:如果员工前端开发的技术栈还是基于jQuery,那么可以继续使用SAP UI5;如果员工本身就是熟练的React/Angular/Vue开发者,那么SAP UI5 Web Component是一个不错的选择。

 

1482aa8d4fd207d398cb9562ae229011.png

 

 

总结




本文首先回顾了 SAP Fiori Fundamentals 和 SAP UI5 Web Components 诞生的历史由来,接着以 UI5 Web Component for React 为例,介绍了这两种前端开发技术双剑合璧的一个使用场景。

 


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

标签:Web,Component,React,UI5,Fiori,SAP
From: https://www.cnblogs.com/sexintercourse/p/18146366

相关文章

  • WebGIS 瓦片地图引擎实现之——地图瓦片加载计算原理介绍
    WebGIS瓦片地图引擎实现之——地图瓦片加载计算原理介绍ThinkGISGIS背景在蚂蚁搞空间数据可视化,L7地理可视化引擎作者​关注他 65人赞同了该文章.背景1.1地图瓦片之前在地图瓦片技术使用之前,用户使用在线地图,一般都是客户端把将要显示的......
  • 106.React SSR(服务器端渲染)实践指南
    106.ReactSSR(服务器端渲染)实践指南极客前端探索者前沿技术的探索者,编码艺术的实践者​关注他 1人赞同了该文章随着前端技术的发展,单页应用(SPA)已经成为了前端开发的主流形式。然而,在某些场景下,如首屏加载速度、SEO优化等方面,SPA仍然存在着一些......
  • WebFlux 中form data获取不到参数问题
    官网并不提供formdata以下方式获取@RequestMapping(path="/post",method=RequestMethod.POST,produces=MediaType.APPLICATION_JSON_VALUE)publicMono<Map<String,Object>>post(ServerWebExchangeexchange,@RequestBody(required=false)Str......
  • JavaWeb技术
    JavaWeb技术1、统一了项目的整体结构(标准化)。2、可以动态的加载jar包(导入依赖)。jdbc技术-----导入jar包---mysql数据库驱动包。3、便于项目的打包、部署、发布。一、JSP简介JSP其实就是JavaServerPages的缩写,是一种动态网页技术。能够支持的编程语言只有Java程序。......
  • React 简单登录平台Demo(1):Next.js配置
    目录前言体验Next.js中文文档路径问题创建项目启动报错测试TailWindCSS热重载如何添加路由第三方库引入tailwindcss配置相关链接布局新建布局布局也是嵌套影响的根节点layout配置路由跳转Link跳转Hook跳转简单的登录页面前言我之前的那个项目写到后面,发现还不如直接用Next.js呢......
  • 三角不等式/react ts 速查表
    三角不等式一般来说软件工程观察到了反三角不等式:要从A到C,通过先从A到B,然后从B到C比直接从A到C更快。如果你提一个拉请求,有帮助的是将它分成更小的部分。如果你重构某些东西,先引入一个新的工作拷贝然后分别淘汰旧代码,比原地更改这个东西要快。reactts速查表htt......
  • IIS 部署WEBAPI
    ASP.NETCore不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NETCore程序中,随后就将接收到的请求推送至中间件管道中去,处理完你的请求和相关业务逻辑之后再将HTTP响应数据重新回写到IIS中,最终转达......
  • Java项目调用 WebService
    Java项目调用WebService序言:原本接触和二开的Java项目都是使用Spring框架,并且使用的接口都是RestFul风格,今天有一个Kingdee项目是使用WSDL文件提供接口通过WebService的方式来进行接口方式的相互通讯;因为是第一次使用WebService方式,所以写下这篇文档留作参考记......
  • 如何在 Netlify 上手动部署 React 和 TypeScript 项目
    在本教程中,我将教你如何使用Vite在Netlify上手动部署React和TypeScript项目。我将向你展示一些快速简单的步骤,让你的项目能够立即运行。要跟着本教程操作,有几个先决条件:一个现有的React和TypeScript项目,使用Vite构建,并且你想要部署它。VisualStudioCode(VSCode......
  • REACT小练习
    react组件间props传递functionDetail({content,active}){return(<div><p>{content}</p><p>{active?'已激活':'未激活'}</p></div>)}functionArticle({title,de......