Node.js躬行记——低代码

  低代码开发平台(LCDP)是无需编码(0代码)或通过少量代码就可以快速生成应用程序的开发平台。让具有不同经验水平的开发人员可以通过图形化的用户界面,通过拖拽组件和模型驱动的逻辑来创建网页和移动应用程序。

  低代码的核心是呈现、交互和扩展,其中呈现和交互需要借助自行研发的渲染引擎实现。而此处的扩展特指物料库,也就是各类自定义的业务组件,有了物料库后才能满足更多的场景。

  在 4 个月前研发过一套可视化搭建系统,当时采用的是生成代码的方式渲染页面。而本次研发采用的则是运行时渲染,功能比较基础,基于React开发,代码量在 3000 多行左右,用户群是本组团队成员,目标是:

  1. 满足 80% 的后台需求,高效赋能解放生产力。
  2. 抽象共性,标准化流程,提升代码维护性。
  3. 减少项目代码量,加快构建速度。

  平台的操作界面如下,由于管理后台页面的元素比较单一,所以暂不支持拖拽和缩放等功能,也就是没有通用的布局器。

  组件区域可以选择内置的通用模板组件,点击添加可在预览区域显示对应的组件,位置可上下调整,并且可以像真实的页面那样进行动态交互。配置区域可填写菜单名称、权限、路由等信息,点击更新文件后,会将数据存储到 MongoDB 中。

一、渲染引擎

  在数据库中保存的组件是一套 JSON 格式的 Schema(页面的描述性数据),将 Schema 读取出来后,经过渲染引擎解析后,得到对应的组件,最后在页面中显示。

1)Schema

  下面的 Schema 描述的是一个提示组件,参数的值是字符串和布尔值。为了能让组件满足更多的场景,有时候,组件的参数值可以是字符串类型的 JSX 代码或回调函数,例如下面的 description 属性,那这些就需要做特殊处理了。

{
  props: {
    message: "123",
    description: "<p>456</p>",
    showIcon: true
  },
  name: "Prompt"
}

  点击 Schema 按钮,可实时查看当前的 Schema 结构,这些 Schema 最终也会存储到 MongoDB 中。

  

2)参数解析

  从组件区域得到的参数都是字符串类型,此时需要做一次适当的类型转换,变成数组、函数等。eval() 比较适合做这个活,它会将字符串当做 JavaScript 代码进行执行,执行后就能得到各种类型的值。

  在下面的遍历中,先对数组做特殊处理,然后再判断字符串是否是对象或数组,最后在运行 eval()函数时,要加 try-catch,捕获异常,因为字符串中有可能包含各种语法错误。

for (const key in values) {
  // 未定义的值不做处理
  if (values[key] === undefined) continue;
  // 对数组做特殊处理
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 毕业设计-基于Vue的智慧校园管理系统web前端源码(附后端源码)+项目说明.zip 项目功能介绍   本项目主要包含总览、成绩分析、教师管理、学生管理、年级管理、班级管理、科目管理、考务管理、通录、考勤录、系统管理等。其中成绩分析、考务管理、通录、考勤录、系统管理又分别包含下列子模块。 - 成绩分析包括:年级分析、班级分析、学生分析。 - 考务管理包括:考场管理、考试管理、考场查询、成绩查询。 - 通录包括:车辆通、教师通、学生通。 - 考勤录包括:教师考勤、学生考勤。 - 系统管理包括:角色管理、用户管理、菜单管理、API管理、操作历史。 ### 3.使用说明 ``` - node版本 > v16.8.3 - golang版本 >= v1.16 - IDE推荐:Goland ``` #### 3.1 前端运 ``` cd smart-campus-web npm install npm run server http://localhost:8000 账号:admin, 密码:123456 ``` #### 3.2后端运 ``` cd smart-campus-server go get 修改config-serve.yaml 中MySQL相关信息 导入backup/db/ 下的数据 go run ./main.go ``` 【备注】 1、该资源内项目代码都经过测试运成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还,也可在此代码基础上进修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值