前言
低代码应当是内部建立起效率体系而后升级为可视化的产物,没有这个前提搭建基本难以贴合业务逻辑。
一个需求的启发
很久以前遇到过一种需求,一个前端对五个后端的 后台项目 如何提高效率,你用面向组件开发的思想肯定优先想到的是让后端的同学进行数据配置,而前端的同学做数据解析器去渲染组件。
过程进行
最终通过如此,与简单的练习慢慢的把工作分配出去,提高效率又能保证视图的唯一性
typescript
// 定义列配置
const columns = createColumns([
"ID|id|80",
// 如此写法是语法糖快速写法
"来源IP|sourceIp|true:3?required&value='123'",
// 正常写法是
{
title:"来源IP",
key:"sourceIp",
// 此即为列可搜索,默认使用文本框,初始化值为123,排序在第三位
searchInputGroup:{
"required":true,
"sort":3,
"value":"123"
}
},
"厂区|factoryArea|true:1?required|true:3",
"使用部门|usageDepartment|true:2?required|true:2",
"创建人|createUser|false|true:1",
"修改人|updateUser",
"添加时间|createTime|180|time",
"修改时间|updateTime|180|time"
]);
export default createOptions({
name:"访问管理",
search:{
inputGroup:getColumnsSearch(columns),
buttonGroup(){
return [
Buttons.search,
Buttons.reset,
Buttons.create({
inputGroup:getColumnsGroup(columns)
}),
Buttons.export({
mode:'browser'
})
]
}
},
table:{
columns,
buttonColumns:{
buttonGroup(){
return [
Buttons.modify({
inputGroup:getColumnsGroup(columns)
}),
Buttons.delete
]
},
width:200
}
},
// 使用MVC思想的接口生成器,模块为accessManagement
api: createMVCApi({
controller:'accessManagement'
})
})
至于路由配置通常使用自动化注册文件默认定义为
access-list.talbe.ts
如此一个简单的表格即会被自动注册与渲染路由,至于这个页面有什么就让后端的同学负责了,前端安心的做项目建设,当然局限性也很明显只能做table。
最后完成的效果
表格位置的功能与逻辑高度统一,当然这样的数据解析器只是项目中的一个应用于表格而已,任何重复一致性高的都会有
接触到低代码平台以后我产生了一些思考
就像前言一样,我认为内部建立起效率体系而后升级为可视化的产物,单纯的做一个DIY低代码平台提高效率结果事与愿违,往往你会发现这样的开发又回到了你打开编辑器的第一步,低代码应该是让使用者定义结果,而不是让使用者创造结果,即用基础组件做出一个轮廓再去填充轮廓,应该是直接给予你轮廓,你的任务仅仅是填充轮廓。
我的说法片面,对于单一场景,海报等确实有效只是对于我的思考觉得有这功夫要是学习个游戏开发工具,拖拽精灵不是一样的效果没必要重复造轮子(个人臆想)。
我想以后的低代码能够简化成这样
js
export const name = '访问管理';
export default "ID(id|80),来源IP(sourceIp,C(required,sort:3,value:123)....)|CURDE(mode:browser)|accessManagement";
以至于最后可以让我们不写那么多文件,用一个txt文本去生成即可,或者现有的低代码DIY平台去通过这样的识别生成轮廓再让使用者填充
个人愚见与理解,如有不妥请评论区指正。