如之前所述,考虑可控性和使用jQuery的考虑,我会自研UI组件。

为什么要用jQuery

在vue, react全家桶和生态已经非常完备的今天为什么要用回老掉牙的jQuery,原因大概如下:

  • 我是考虑低代码生成式代码的方案,这就难免会产生前端的编译问题,大家都知道现代前端框架和生态是依赖 预编译的,而jQuery可以很好的解决这个问题,生成即可执行才是我需要的。
  • jQuery对轻量的修改和编程需求更友好,低代码的目的其实很简单,就是将最后一棒交到用户手里,这是以 用户有开发能力为前提的,但是对于企业IT而言,现代前端框架和工具上手难度较大,jQuery上手相对简单。

大致的实现思路和递进的功能目标

  • 毋庸置疑,首先应该是制作基础UI组件库,需要解决的问题有以下两点:
    • 静态html, css样式、操作DOM的封装(这里参照Arco Design的静态样式,以 jQuery 重写 DOM 操作逻辑)
    • 与 Symfony Twig 结合形成Twig组件,与Symfony Form结合形成Form组件
  • 制作企业常用组件库,相较于常见的UI库,企业框架的特点应该更多体现在专业性和非通用性上。
  • 从模型层面自动映射成前端组件,这是传统OA和低代码系统的主要特点。
  • 通过表单设计器实现可拖拽的表单系统,可复用这些已实现的组件库。
  • 通过组件设计器实现可拖拽的页面组件构建系统,赋予用户自定义页面组件的能力,可形成自己的自定义组件库。
  • 探索大模型在页面构建和表单设计上的应用。

UI库和组件库的制作是一个渐进的过程,应该逐步完成这些目标,与此同时其他功能的开发应该同步进行。

UI组件示例