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

简介: 笔者最近一直在研究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)
}


目录
相关文章
|
15天前
|
前端开发 数据可视化 JavaScript
探索前端可视化开发:低代码平台原理与实践
【4月更文挑战第7天】本文探讨了低代码平台在前端开发中的应用,介绍了其模型驱动、组件化和自动化部署的原理,强调了提升效率、降低技术门槛、灵活适应变更和保证一致性等优势。建议开发者明确适用场景,选择合适平台,并培养团队低代码技能,同时规划与现有技术栈的融合,实施持续优化治理。低代码平台正改变开发格局,为业务创新和数字化转型提供新途径。
38 0
|
5月前
|
开发框架 自然语言处理 数据可视化
低代码平台如何实现快速开发应用?
低代码平台如何实现快速开发应用?
|
存储 数据可视化 JavaScript
(低代码)可视化搭建平台数据源设计剖析
低代码平台属于APaaS(应用平台即服务),其解决的是企业内部应用协调和人效成本的问题. 随着计算机技术诸如云服务等的发展, 传统软件服务已无法满足数字化浪潮的压力,
954 0
|
5月前
|
人工智能 Kubernetes 数据可视化
低代码平台:构建应用程序的“银弹”
低代码平台:构建应用程序的“银弹”
|
8月前
|
Kubernetes 数据可视化 Cloud Native
【源码】低代码PaaS平台,用简单配置快速构建企业级应用程序
基于最先进的云原生技术搭建,整合了Kubernetes、微服务、Serverless、NoSQL 等最先进的技术架构,并提供了完善的自动化开发测试工具与运维管理工具。 基于moleculer 微服务架构开发,每个软件包、每个业务对象都是一个微服务,可以独立部署,独立运行。
|
8月前
|
监控 安全 前端开发
低代码PaaS平台源码:采用对象式和勾选式实现企业应用程序开发,内置10大功能引擎
管理后台低代码PaaS平台是一款基于 Salesforce Platform 的开源替代方案,旨在为企业提供高效、灵活、易于使用的低代码开发平台。低代码PaaS平台的10大核心引擎功能:1.建模引擎 2.移动引擎 3.流程引擎 4.页面引擎 5.报表引擎 6.安全引擎 7.API引擎 8.应用集成引擎 9.代码引擎 10.公式引擎。 采用与直接模块拖拽编程不一致的是,低代码PAAS采用的对象方式实现字段、API的字段类型,引入RPA实现表自动化建模;再使用选择方式对地段功能进行选择定义甚至可以插入代码进行自定义。采用前后端同一技术,可实现功能应用边使用边修改的功能。
低代码PaaS平台源码:采用对象式和勾选式实现企业应用程序开发,内置10大功能引擎
|
9月前
|
数据可视化 前端开发 JavaScript
可视化逻辑编排工具——低代码/无代码
可视化逻辑编排工具——低代码/无代码
336 0
|
9月前
|
数据可视化 安全 数据管理
低代码快开平台:Web可视化开发+强大流程+源码+多端支持
本套低代码PaaS平台是一款基于 Salesforce Platform 的开源替代方案,支持多种企业应用场景,包括但不限于CRM、ERP、OA、BI、IoT、大数据等。无论是传统企业还是新兴企业,都可以使用管理后台快速构建自己的应用程序和流程。
低代码快开平台:Web可视化开发+强大流程+源码+多端支持
|
存储 运维 数据可视化
低代码平台中的“模型驱动”与“表单驱动”有何区别?
低代码是近几年比较火的一种应用程序快速开发方式,它能帮助用户在开发软件的过程中大幅减少手工编码量,并通过可视化组件加速应用程序的高效交付。(低代码的定义来自Forrester报告,被认为是低代码一词的起源)。
低代码平台中的“模型驱动”与“表单驱动”有何区别?
|
消息中间件 API Nacos
【组件开发实践】云巧流程组件对接实践
通过简单的业务场景进行举例,介绍如果通过云巧流程组件的API进行集成对接
31707 1