用Vue如何实现低代码开发平台?

这篇具有很好参考价值的文章主要介绍了用Vue如何实现低代码开发平台?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

在众多开发技术中,Vue组件化开发技术以其卓越的灵活性和高效性备受瞩目。

低代码平台相信不少人知道它的存在,而且现在大部分公司都在开发自己的低代码平台,首先我们来看看低代码平台可视化界面:

用Vue如何实现低代码开发平台?,vue.js,低代码,前端

官网:https://www.jnpfsoft.com/?csdn,感兴趣自行去体验。

可以看到,大多数的页面设计器都包含了几个区域:左边是组件、中间为画布、右边为属性配置区域。接下来我们分析它是怎么实现拖动形成一个表单页面的,这里我们对css布局不做研究,直接分析它是怎么实现的。

一、分析

首先大家来思考一下,我们从左侧组件列表中拖动一个想要的组件到中间画布上,然后形成我们预期的页面,并且点击画布上的某个组件时会有当前组件的属性配置区(每个组件都有唯一的属性区),并且在右侧修改属性值,页面也会接着变化。这到底时怎么实现的呢?

其实这里可以通过json来实现的,我们预先定义好描述组件的json,json包含了当前组件数据和当前组件的样式属性数据等,并通过组件生成器将将描述组件的json结合起来渲染出实际组件,当修改样式属性时,组件样式同步更新;下面我们一input组件为例,其大致json如下:

json:{
  fieldId: '',
  name: 'Input',
  label: '单行文本',
  icon:"input01"
  placeholder: '请输入',
  value: '',
  rules: {},
  makeStyle: { //制作表单的时候,页面的样式控制
    active: false
  },
  style: {}, // 组件的样式
  setting: {}, // 组件的其他属性设置,比如:rows: 2
}

知道了组件需要用json描述,接下来我就开始正式开发;

用Vue如何实现低代码开发平台?,vue.js,低代码,前端

二、组件列表

左侧组件列表比较简单就是将所有组件的json放到一个数组中,在页面中进行遍历即可。

//components  组件列表
 <div
      v-for="(item, index) in components"
      :key="index"
    >
      <i class="iconfont" :class="item.icon"></i>//图标
      <span>{{ item.label }}</span>//列表显示的名字
    </div>

三、开发拖拽搭建面板

拖拽组件这里我们借助vuedraggable插件,相关API请自行查看官网文档了解,这里不再阐述。

组件区域

  <!--组件列表改进,外层包裹draggable标签 -->
  <draggable
    v-model="components"          // 拖拽列表数据源
    :options="{ 
      group:{ 
              name: 'itxst',   // 可拖拽列组,相同表名可相互推拽
              pull: 'clone'    // 拖拽模板物料,复制到目标列表
            }, 
            sort: false        // 是否可推拽排序
    }"  
    :clone="handleClone"       // 复制模板物料执行方法 ,比如克隆元素并产生全局唯一的fieldId
    animation="300"            // 动画延迟
  >
    <div
      v-for="(item, index) in components"
      :key="index"
    >
      <i class="iconfont" :class="item.icon"></i>
      <span>{{ item.label }}</span>
    </div>
  </draggable>


  //克隆的方法
  handleClone(obj) {
      const newObj = Object.assign(_.cloneDeep(obj), {
        fieldId: `${obj.name}_${new Date().getTime()}`,
      })
      return newObj
  }

页面

  <!-- 画布区域 -->
  <draggable
    v-model="list2"         // 拖拽列表数据源
    group="itxst"           // 可拖拽列组,相同表名可相互推拽
    ghostClass="ghost"      // 拖动元素的占位样式class
    chosenClass="chosen"    // 选中目标的样式class
    selector="selector"
    :animation="500"        // 动画延迟
    :sort="true"            // 是否可推拽排序
  >
    <component
      v-for="item in mList"
      :key="item.id"
      :is="item.name"
      v-bind="item"
    ></component>
  </draggable>

list2是我们画布中的组件json组成的数组,这里使用<component>标签来渲染对应的组件,接下来就是属性配置区域;

四、属性配置区域

属性配置区域其实也是根据不同的组件显示不同的配置组件,它其实就是一个组件。当我们点击画布区域的某个组件的时候配置区域就会显示它的属性和值,当我们修改值以后,页面也会随之变化。

五、组件删除和复制

其实的组件的删除很简单,还记得之前的拖动形成的唯一的fieldId,点击删除就是拿到fieldId在组件数组中是删除数组中对应的组件json即可。同理复制的时候也是在当前fieldId对应的组件后面插入一条数据,指得注意的是,复制也要生成唯一的fieldId;

六、后记

到这里基本拖拽实现了,认真想想,其实低代码平台万变不离其宗,都是围绕json来进行的,后续将出嵌套组件是如何实现,还有组件间通讯方式专题,代码将会开源,我将会出个简单的demo方便大家对照着文章的思路,自己琢磨;

带你从零实现vue 低代码平台 - 知乎 (zhihu.com)文章来源地址https://www.toymoban.com/news/detail-585972.html

到了这里,关于用Vue如何实现低代码开发平台?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GoView 是一个Vue3搭建的低代码数据可视化开发平台

    开源、精美、便捷的「数据可视化」低代码开发平台 框架:基于  Vue3  框架编写,使用  hooks  写法抽离部分逻辑,使代码结构更加清晰; 类型:使用  TypeScript  进行类型约束,减少未知错误发生概率,可以大胆修改逻辑内容; 性能:多处性能优化,使用页面懒加载、组件

    2024年02月04日
    浏览(59)
  • 企业级通用低代码开发平台——一二三应用开发平台发布1.0开源版本,前端vue3+element plus,框架vue-element-plus-admin,后端ssm+MybtaisPlus

    早些时候,也就是三月初的时候,定了一个长期计划,即再启程,研发应用开发平台(详见本专栏第一篇https://blog.csdn.net/seawaving/article/details/129334330)。 经过大概两个月的努力,低代码配置功能部分完成了雏形,并使用配置功能,将系统管理模块实现出来了,相当于进行了初

    2024年02月05日
    浏览(63)
  • Vue+springboot舞蹈基础课程视频学习分享平台的实现和开发

    基于java语言设计并实现了舞蹈基础数据平台。该系统基于B/S即所谓浏览器/服务器模式,应用Springboot框架,选择MySQL作为后台数据库。系统主要包括首页、个人中心、用户管理、舞蹈类型管理、舞蹈视频管理、用户留言、管理员管理、系统管理等功能模块。 重点研究的,关键

    2024年02月07日
    浏览(55)
  • O2OA(翱途)开发平台如何在流程表单中使用基于Vue的ElementUI组件?

    本文主要介绍如何在O2OA中进行审批流程表单或者工作流表单设计,O2OA主要采用拖拽可视化开发的方式完成流程表单的设计和配置,不需要过多的代码编写,业务人员可以直接进行修改操作。 在流程表单设计界面,可以在左边的工具栏找到ElementUI组件。 将对应的组件拖动到表

    2024年03月09日
    浏览(35)
  • 应用开发平台前端集成vue-simple-uploader实现文件分块上传

    文件的上传是系统的必备功能,Element提供了上传组件upload,也基本能满足常见常用的文件上传功能,特别是应对小型文件(10M以下)的处理。但如果是遇到要求更多更高的场景,上传几百兆甚至上G的视频文件,要求分块上传,能断点续传,显示进度,能暂停,能重试……这

    2024年02月08日
    浏览(51)
  • 毕业设计——基于java+vue开发的在线教育平台,将开发PC、小程序、手机端,集成RABC权限+在线考试+文档预览+视频播放+代码生成器等功能

    完整项目地址:https://download.csdn.net/download/lijunhcn/88556337 本项目是基于java+vue开发的[在线教育平台],将开发PC、小程序、手机端,集成RABC权限+在线考试+文档预览+视频播放+代码生成器等功能。 版本控制:git 依赖管理:maven 接口文档:Swagger 权限验证:Spring Security 数据库:

    2024年02月03日
    浏览(70)
  • 讯飞开放平台--星火认知大模型--开发技术文档--js实例代码详解

            之前调用写过调用百度的文心一言写网站,讯飞的星火认知模型开放了,这次尝试一下使用流式来进行用户的交互。 平台简介 | 讯飞开放平台文档中心 星火认知大模型Web文档 | 讯飞开放平台文档中心         本文章主要开发的是一个web应用。 值得一提的是官网

    2024年02月09日
    浏览(47)
  • 三维交互可视化平台(智慧海上牧场平台)学习开发之Vue(一)

    最近找导师重新更换了研究方向,学的东西还是蛮杂的,本来就是一个代码菜鸟,捣鼓一大堆,全栈开发、各种语言、区块链开发等等,之前总是想要学会一项,完成一样功能才记录。目前我要完成的项目是一个智慧海洋牧场平台,前期学习了Flask+mysql+echarts的可视化展示,现

    2023年04月09日
    浏览(46)
  • 一文解读!如何选择适合你的零代码、低代码开发平台

           首先,我们来探讨一下什么是 低/零代码 。低代码和零代码的概念最早出现在2014年,由Forrester提出。它们的核心要点包括:        1. 快速交付业务应用:低代码和零代码平台能够实现业务应用的快速交付,这种速度甚至可以是颠覆性的。        2. 降低业务应用开

    2024年02月14日
    浏览(41)
  • 大型企业如何通过低代码平台提高开发效率和降低成本?

    云计算、大数据、人工智能、物联网风口之下,企业数字化转型如同被按下了快进键。为快速攻破转型路上的技术关,企业纷纷把目光投向了低代码开发平台,希望可以用最短的时间,开发出最适合企业发展的应用。 首先,我们要明确一个问题,那就是对于集团型企业来说,

    2024年02月06日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包