低代码开发平台核心功能设计——组件自定义交互实现

简介: 笔者最近一直在研究Lowcode(低代码)平台, 也做了非常多的实践, 对于页面可视化搭建平台有了基本的研发方向和解决方案, 后期会陆续分享我对低代码平台的一些理解和解决方案, 并在企业应用层做一些探索.

网络异常,图片无法展示
|

前言


笔者最近一直在研究Lowcode(低代码)平台, 也做了非常多的实践, 对于页面可视化搭建平台有了基本的研发方向和解决方案, 后期会陆续分享我对低代码平台的一些理解和解决方案, 并在企业应用层做一些探索.


正文


1. 什么是低代码以及低代码的意义


最近笔者在outsystems网站上看了一篇比较好的阐述低代码平台的文章, 这里笔者特意做一个简单的定义:


低代码 是一系列工具,可帮助我们使用拖放界面直观地创建完整的应用程序。低代码平台无需编写数千行复杂的代码和语法,而是使用户能够快速,直观地构建具有现代用户界面,集成,数据和逻辑的完整应用程序。


低代码 是一种软件开发方法,可以更快地以最少的手工编码交付应用程序。通过在图形界面中使用可视化建模来组装和配置应用程序,开发人员可以跳过所有基础架构,并重新实现以往很难解决的场景,让开发人员聚焦于自身业务独特性的打造。


打个比方,想象一下你开的一家口罩制造厂:涉及自动化的机器并不能决定口罩的外观,但它们确实会加快口罩的组装和交付过程。这就是低代码的作用。


低代码对软件来说就像装配线对口罩制造厂一样:都使困难且耗时的手动任务自动化,从而使人们腾出更多的时间去做更重要的事情。


我们市面上比较常见的低代码开发平台有:


  1. 可视化IDE:一种用于可视化定义应用程序的UI,工作流和数据模型,并在必要时添加手写代码的环境。
  2. 与各种后端或服务的连接器:自动处理数据结构,存储和检索。
  3. 应用程序生命周期管理器:用于在测试,登台和生产中构建,调试,部署和维护应用程序的自动化工具。


比较先进的系统(例如OutSystems)为我们提供了创建现代,跨平台的企业移动和Web应用程序所需的一切,并具有补充现有团队结构的功能。如下图流程所示:


网络异常,图片无法展示
|



2. 低代码开发流程


我们传统的软件开发过程往往都会经过如下所示流程:


网络异常,图片无法展示
|


也就是从基本的需求设计, 产品规划到前后端应用开发, 最后到测试, 部署上线.

使用低代码, 他的开发流程看起来像:

网络异常,图片无法展示
|


每一个步骤都能通过非常简单的拖拽去实现, 大大降低的开发成本, 使得开发人员和产品工作者能更专注的聚焦于核心业务的打磨和快速试错, 更为敏捷开发提供了有力支撑.


3. 如何实现低代码体系下的内外部系统交互


在介绍完低代码平台之后, 我们开始聚焦于实际业务场景, 来实现低代码开发平台中遇到的核心问题以及解决方案. 这里笔者拿H5-Dooring来举个例子, 先看看dooring的操作

界面:


网络异常,图片无法展示
|


我们在使用可视化平台时除了需要满足对展示型页面的设计需求外, 我们更多的是要和企业自身业务打通,比如如何实现跨系统间的交互, 如何实现基本元素的交互能力, 如何植入外部API使得数据流向企业内部等. 这些需求对应的实际场景如下:


  1. 网页嵌入App内部需要和app端通信, 而不是单纯的展示
  2. 网页需要对用户的操作实现基本的交互能力, 比如跳转链接, 打开弹窗等
  3. 企业配置好的表单, 对外收集数据时希望流入自己内部系统做数据收集和分析


笔者将针对以上场景, 在H5-dooring中给出相应的解决方案.


3.1 网页嵌入App内部和app端通信实现


要实现和外部容器通信,必须具备的就是自定义编码能力, 也就是笔者采用LowCode而不是noCode的原因, 具体实现方式有很多, 比如采用比较流行的代码编辑插件react-codemirror2或者 react-monaco-editor. 其次要解决的就是哪些组件需要具备这种交互能力, 这里很明显是我们的Button组件. 效果如下:


网络异常,图片无法展示
|


网络异常,图片无法展示
|


这样我们就能实现真正的代码自治和跨容器通信了. 至于react-codemirror2的使用方式,笔者简单写个demo供大家参考:


import {Controlled as CodeMirror} from 'react-codemirror2';
require('codemirror/mode/javascript/javascript');
<CodeMirrorvalue={this.state.value}options={options}onBeforeChange={(editor,data,value) => {
    this.setState({value});
  }}
  onChange={(editor, data, value) => {
  }}
/>

当然其内部支持更多的语言扩展, 感兴趣的可以研究一下, 笔者也基于它实现了一个简单的代码编辑器, 可以研究一下.


3.2 页面元素对用户的操作实现基本的交互能力, 比如跳转链接, 打开弹窗等


基本上任何可视化搭建平台都会提供一定程度上的交互能力, 这些交互往往和交互组件所绑定, 比如按钮, 链接, 这里笔者给搭大家展示在Button(按钮)组件中的应用:


网络异常,图片无法展示
|


以上为3中常见的交互模式, 即:


  1. 跳转链接
  2. 打开弹窗, 并自定义弹窗内容
  3. 自定义交互能力


因为第三种方式笔者已经在上面介绍了, 这里重点介绍弹窗交互. 一般的弹窗交互可能会支持的弹窗内容如下:


  1. 图片
  2. 文字提示
  3. 图文提示
  4. 表格


还有很多形式, 如果我们的实现中要一次实现这些组件, 那将是非常大的工作量, 所以笔者这里设计了一种一劳永逸的方式——富文本编辑器. 笔者提供富文本编辑器来实现用户定义任何内容形态的能力, 如下图所示:


网络异常,图片无法展示
|


在手机端的效果如下:


网络异常,图片无法展示
|


要实现该交互需要定义交互的json-schema, 这里笔者在之前的文章中也解剖过H5-dooring的具体实现, 这里不一一介绍了, 我们主要来看看富文本编辑器, 这里笔者推荐两款:


  • react-quill
  • braft-editor


3.3 企业配置好的表单, 对外收集数据时希望流入自己内部系统做数据收集和分析


对于交互型应用来说, 数据追踪和分析能力是比较重要的一环, 目前也有很多表单问卷工具, 同样H5-Dooring也提供了表单问卷一体化解决方案, 用户可以在平台内搭建自定义的问卷并进行数据收集, 分析. 对于有私域需求的用户来说, 他们希望表单的数据流向自己内部系统, 自己进行分析, 所以我们理论上也应该提供这种开发接口供用户使用, 在表单设计中, 笔者暴露了api接口来实现这一需求:


网络异常,图片无法展示
|


如果用户提供了api接口, 页面会自动提交到api指定的地址, 笔者对该接口做了跨域处理, 用户只需要提供对应的跨域接口即可. 代码实现如下:


if (api) {
fetch(api, {
body: JSON.stringify(formData),
cache: 'no-cache',
headers: {
'content-type': 'application/json',
      },
method: 'POST',
mode: 'cors',
    });
  }else {
req.post(`xxx/xxx`, formData)
}


目录
相关文章
|
10天前
|
人工智能 开发框架 JavaScript
LowCodeEngine:阿里开源的企业级低代码开发平台,提供预制的 UI 组件和模板,覆盖完整的研发周期
LowCodeEngine 是阿里巴巴开源的低代码开发框架,旨在通过拖拽、配置等简单操作,帮助开发者快速构建复杂的系统页面,提升开发效率和质量。
53 4
LowCodeEngine:阿里开源的企业级低代码开发平台,提供预制的 UI 组件和模板,覆盖完整的研发周期
|
SQL 搜索推荐 JavaScript
低代码开发平台的功能有哪些?低代码“功能清单”一览
基于大家对低代码的好奇,下面就给大家盘点3款低代码开发平台的功能清单。希望对大家有所帮助!
|
域名解析 移动开发 小程序
阿里云 EMAS & 魔笔:7月产品动态
阿里云移动研发平台EMAS & 低代码开发平台魔笔 7月产品动态已更新:移动测试(国际站)功能全面支持iOS17、移动推送 iOS发布SDK 2.0.2版本,修改偶发崩溃BUG、魔笔 新增企业定制模版;优化数据选择框组件和面包屑组件等。
257 0
阿里云 EMAS & 魔笔:7月产品动态
|
8月前
|
域名解析 测试技术 Serverless
阿里云 EMAS & 魔笔:12月产品动态
阿里云移动研发平台EMAS & 低代码开发平台魔笔 12月产品动态已更新:移动测试云真机列表改为按设备选择,新增更多设备状态展示;EMAS Serverless 函数定时任务超时时间支持1~7200秒;移动推送控制台支持配置华为、vivo的默认回执
135 0
|
存储 域名解析 移动开发
阿里云 EMAS & 魔笔:6月产品动态
阿里云移动研发平台EMAS & 低代码开发平台魔笔 6月产品动态已更新:EMAS Suite 发布HBuilderX打包插件、移动测试 云真机支持折叠屏、魔笔 更新多种功能、优化多种体验链路等。
240 0
阿里云 EMAS & 魔笔:6月产品动态
|
移动开发 运维 监控
🆕阿里云魔笔评测上线!限时免费体验通道开启!
🎁写下你的评测体验,就有机会获得罗技G512游戏机械键盘、罗技G502机械鼠标、小米背包、定制飞盘、阿里云社区优质评测证书、30元猫超卡等多重好礼!
520 0
🆕阿里云魔笔评测上线!限时免费体验通道开启!
|
域名解析 缓存 监控
阿里云 EMAS & 魔笔:5月产品动态
阿里云移动研发平台EMAS & 低代码开发平台魔笔 5月产品动态已更新:EMAS Serverless SDK uploadFile支持上传文件到指定目录;移动推送发布Android SDK 3.8.6版本;魔笔新增并优化多种组件物料及功能模块,教学体系新增 Datagrid 实战指南等。
229 0
阿里云 EMAS & 魔笔:5月产品动态
|
域名解析 移动开发 监控
阿里云 EMAS & 魔笔:4月产品动态
阿里云移动研发平台EMAS & 低代码开发平台魔笔 4月产品动态已更新:移动测试iOS开启辅助触控,支持多指划屏体验;移动推送发布官方开源ReactNative插件;魔笔新增多种组件物料和功能模块,上线更多套餐选购版本,优化多种用户体验板块!
220 0
阿里云 EMAS & 魔笔:4月产品动态
|
域名解析 移动开发 NoSQL
阿里云 EMAS & 魔笔:3月产品动态
阿里云移动研发平台EMAS & 低代码开发平台魔笔(Mobi)3月产品动态已更新:云发布支持发布单版本校验规则动态配置;移动测试支持录制脚本使用appium 2.0框架;移动推送支持vivo和华为的消息/通知类型参数;魔笔发布 v1.6 版本,新增并优化多种功能、组件、模块,同时完善了魔笔教学体系,让用户拥有更好的体验!
248 0
阿里云 EMAS & 魔笔:3月产品动态
|
移动开发 Serverless 数据库
阿里云 EMAS & 魔笔 :1月产品动态
阿里云移动研发平台EMAS & 低代码开发平台魔笔(Mobi)1月产品动态更新,新增Native指纹解锁和手势解锁等组件;支持构建H5应用流水线、支持发布H5应用;iOS支持大写字母包名重签名;应用开放平台1.0发布;EMAS Serverless 优化函数访问数据库等服务网络延迟;移动推送发布Android 3.8.2;EMAS Surperapp解决方案全球发布;上线魔笔独立站、魔笔物料市场等。
465 0
阿里云 EMAS & 魔笔 :1月产品动态

热门文章

最新文章