可视化碎片生成页面低代码平台 世界通讯

首页 > 资讯 > 正文
2023-02-28 14:05:54

来源:腾讯云

摘要:一个系统中可能会有很多很多页面,但经过比较可能会发现有部分模块非常相似,有的模块差别非常大,无论是手动引入组件还是其他方式,都会带来不小开发以及测试量,为此我们想能不能通过碎片的形式将页面组合起来呢?


【资料图】

一、碎片的理解

所谓的碎片主要分为两种

(1)那种很细很基础的组件,比如我们经常用的一个输入框, 一个表格,一个echat图。

(2)带一定业务逻辑的复杂模块,比如日志展示组件,智能分析模块等。

试想下有了这两种页面是不是很多页面都能通过拖拽的形式就行拼装出来呢?

二、碎片的展示

碎片千奇百怪,我们不可能一次引入所有组件,这样下次新增的时候又得修改代码。

这里我们使用动态注册的方式,如下所示:

toggle(info) {      this.registerComponent(info.componentPath).then((Component) => {        new Component({          el: `#${info.componentName}`,          store: this.$store,          router: this.$router,          data: {            customData: info.customData,          },        });      });    },    registerComponent(path) {        // eslint-disable-line      const _import = require("../../utils/_importRegist");      return _import(path).then(component => Vue.extend(component.default));    },

动态引入之后呢,就是动态展示的问题,这里使用的是is关键字,这样的话任何组件,包括输入框等表单类的组件也能展示。

三、事件

我们经常遇到的一些交互,大部分是由数据改变驱动的,比如联动、下钻。常见的是由于某个数据变化,触发回调,然后有了相应的操作,这边呢,因为组件的独立性,没有这种回调关系。那么是不是可以反过来想,每个组件都有自己的独立数据仓库,然后数据改变传递到仓库,然后每个独立组件都可以监听很多个仓库,任何一个改变可以触发相应的操作。

watch: {    queryFormData(newVal, oldVal) {      const newValOfJSON = JSON.parse(newVal);      this.wathcFrom.forEach((item) => {        if (JSON.stringify(newValOfJSON[item]) !== JSON.stringify(JSON.parse(oldVal)[item])) {          this.doSomething({ ...newValOfJSON[item] });        }      });    },  },
还有一些特殊事件我们可以用模版化的方式实现,也就是选择具体功能的函数模版,然后配置上去。当然这里还可以动态输入函数,然后用new Function去实现,但考虑到用户可能不会写这个函数,就暂时没这么去实现。

四、数据源

目前主要通过固定解析JSONSchema的模版函数去实现,当数据源接入的越来越多,这种函数模版就需要逐渐扩充。还有就是调取数据源需要的一些参数,参数无非分为两部分,固定参数(常量),和逻辑分析参数,

这块也是参考了非常多的系统后得出的适合当前项目业务的方案,类似的方案有操作数据库表的方式等。

出于安全原因,代码就不透露了。

五、容器

碎片有了之后就需要一个容器来盛放,这里定义了一个统一入口组件来盛放。

这样会带来一些细节问题,如嵌套关系父组件套子组件,子组件套父组件的情况,这里采用类似路由懒加载,通过采用回调函数函数的形式引入组件可以解决这个问题。

const ContainBox = () => import("./ContainBox.vue");

还有就是当配置了多个页面,页面跳转势必带来组件被复用的问题,这里通过判断路由跳转,给组件绑定不同key的形式来解决。

六、模版

比如我们配置给组建的文案肯定不是一层不变的,有时候随着联动事件触发,会发生一些相应的变化或者说一些逻辑关系的处理。这里我们可以采用类似于vue的模版去解析变量,比如解析:{{clientArea}}的数据。

templateMatch(str, queryArg) { // 模版匹配 let lineName = str; const reg = /\{\{(.+?)\}\}/g; if (reg.test(lineName)) { lineName = lineName.replace(reg, (...args) => this.getValue(args[1], queryArg)); } return lineName; },
getValue(val, data) { return val.split(".").reduce((data, currentVal) => { if (!data[currentVal]) { return ""; } return data[currentVal]; }, data); },

然后还有一些技术细节就不再赘述,比如使用mix合并公用代码、new Function等。

七、定制化需求

目前定制化需求,主要是通过手动输入一些定制化函数,然后页面动态进行解析。

八、用户配置界面

用户配置界面是通过用户拖拽生成的,大小等是通过grid网格布局的形式,让用户随意拖动摆放

                        

通过配置界面生成JSONSchema 用户所有的配置数据都写入其中,然后通过前面的步骤进行解析。

标签: JavaScript

THE END

相关热点

6月20日,资本邦了解到,一改上周的强势走势,今日,新东方在线(01797 HK)及新东方(09901 HK)H股股价均下跌。截至港股收盘,新东方在线跌32
2022-06-20 17:29:10
新华社电 上海市文化和旅游局近日发布《上海市密室剧本杀内容备案管理规定(征求意见稿)》,并截至12月8日面向社会公众广泛征求意见。这
2021-11-19 13:46:03
《中国证券报》17日刊发文章《备战2022 基金经理调仓换股布新局》。文章称,距离2021年结束仅剩一个多月,基金业绩分化明显。部分排名靠前
2021-11-19 13:46:03
交通运输部办公厅 中国人民银行办公厅 中国银行保险监督管理委员会办公厅关于进一步做好货车ETC发行服务有关工作的通知各省、自治区、直
2021-11-19 13:45:58
新华社北京11月17日电 题:从10月份市场供需积极变化看中国经济韧性新华社记者魏玉坤、丁乐读懂中国经济,一个直观的视角就是市场供需两端
2021-11-19 13:45:58
全国教育财务工作会议披露的消息称,2020年,中国国家财政性教育经费投入达4 29万亿元,占GDP总量的4 206%,我国国家财政性教育经费支出占G
2021-11-19 13:45:48
如果你也热爱“种草”,前方高能预警!让你心心念念、“浏览”忘返的网络平台,可能早已成为一块块“韭菜地”。近日,据《半月谈》报道,有...
2021-11-19 13:45:48
日前,工业和信息化部印发《“十四五”信息通信行业发展规划》(以下简称《规划》),描绘了未来5年信息通信行业的发展趋势。《规划》指出...
2021-11-19 13:45:40
本报讯(中青报·中青网记者 周围围)2021年快递业务旺季正式拉开帷幕。国家邮政局监测数据显示,仅11月1日当日,全国共揽收快递包裹5 69
2021-11-19 13:45:40
人民网曼谷11月17日电 (记者赵益普)17日上午,中国援柬埔寨第七批200万剂科兴新冠疫苗抵达金边国际机场。当天,柬埔寨政府在机场举行了
2021-11-19 13:45:35
金坛压缩空气储能国家试验示范项目主体工程一角受访者供图依托清华大学非补燃压缩空气储能技术,金坛压缩空气储能项目申请专利百余项,建立
2021-11-19 13:45:35
视觉中国供图42亿立方米据有关部门预计,今年山西煤炭产量有望突破12亿吨,12月份山西外送电能力将超过900万千瓦,今冬明春煤层气产量将达4
2021-11-19 13:44:34
14省份相继发布2021年企业工资指导线——引导企业合理提高职工工资今年以来,天津、新疆、内蒙古、陕西、西藏、山东、江西、山西、福建、四
2021-11-19 13:44:34
中新网客户端北京11月18日电 (记者 谢艺观)“一条路海角天涯,两颗心相依相伴,风吹不走誓言,雨打不湿浪漫,意济苍生苦与痛,情牵天下喜
2021-11-19 13:44:31
近日,交通运输部等三部门发布《关于进一步做好货车ETC发行服务有关工作的通知》。通知提到,对不具备授信条件的用户,商业银行可在依法合
2021-11-19 13:44:31
欧莱雅面膜陷优惠“年度最大”风波 涉及该事件集体投诉超6000人次美妆大牌双十一促销翻车?近日,因预售价格比双十一现货贵出66%,欧莱雅
2021-11-19 13:44:13
43 6%受访者会在工作两三年后考虑跳槽54 3%受访者认为跳槽对个人职业发展有利有弊如今对不少年轻人来说,想对一份工作“从一而终”不太容易
2021-11-19 13:44:13
超八成受访青年表示如有机会愿意开展副业 规划能力最重要64 4%受访青年指出做副业跟风心态最要不得如今,“身兼数职”已成为年轻人当中的
2021-11-19 13:44:01
发展氢能正当其时【科学随笔】氢能是一种二次能源,它通过一定的方法利用其他能源制取,具有清洁无污染、可储存、与多种能源便捷转换等优点
2021-11-19 13:44:01
“千杯不醉”的解酒“神药”能信吗?专家:网红“解酒药” 其实不算药俗话说,“酒逢知己千杯少”,酒一直是国人饭桌上至关重要的存在。尽...
2021-11-19 13:43:57
最新文章

相关推荐