先看成果:(样式业务简陋请见谅!)

如图:左侧按钮/div/span/拖拽到右侧生成组件,右侧组件之间也可以互相碰撞替换;

左右都是数组,拖拽的过程相当于两个数组数据的迁移

本功能使用得draggable插件,参数配置请跳转查看!

下面开始分享实现过程:

1、下载draggable

npm install vuedraggable --save

2、引入 draggable

import draggable from 'vuedraggable'
// 注册
components: { draggable }

3、 左侧代码实现

<draggablev-model="dragNode"tag="ul"v-bind="{group: { name: 'people', pull: 'clone', put: false },sort: false,animation: 0,filter: '.undraggable'}"
>// 循环生成按钮<button v-for="(component,index) in dragNode" :key="index" class="btn-grad-03">{{ component.title }}</button>
</draggable>

js逻辑部分

// 三个测试基础组件(实际开发可替换成自己的业务)
import component1 from './component1'
import component2 from './component2'
import component3 from './component3'components: {component1,component2,component3
},// 左侧组件名称列表
dragNode: [{name: 'component1',title: '文字组件'
}, {name: 'component2',title: '表格组件'
}, {name: 'component3',title: '环形进度条'
}]

4、右侧代码实现

<draggablev-model="dragData"style="width: 100%;height: 100%;"v-bind="{group: 'people',animation: 300}"
><el-col v-for="(item, index) in dragData" :key="index" :span="12" style="margin-bottom: 30px;"><div class="drag-content">// 关闭组件<i class="el-icon-close close-icon" @click="handleCloseComponent(index)" /><div>{{ item.title }}</div>// 循环生成动态组件 :is<component :is="item.name" class="mt" /></div></el-col>
</draggable>

data

// 拖拽后的数据
dragData: [],

methods

// 删除关闭组件(删除数据)
handleCloseComponent(index) {this.dragData.splice(index, 1)
};

以上就是该功能的具体实现,有需要的小伙伴可以借鉴;


这种扩展性很高;

1、做过表单设计器,首页完全拖拽布局,生成json存储的数据库,根据json回显渲染页面,实现个性化首页(左侧组件名、中间容器、右侧数据样式设置)

2、做过大屏幕模块定制化,不同人员可设置不同右侧组件布局

也可以使用多列拖拽容器等

因效果设计公司业务。暂不展示


ps:如果内容对大家有帮助的话,不要吝啬你的小手,点赞支持支持博主

vue+vuedraggable 实现文字/按钮/div拖拽组件详解相关推荐

  1. Android--Launcher拖拽事件详解【androidICS4.0--Launcher系列二】

    AndroidICS4.0版本的launcher拖 拽的流程,基本和2.3的相似.就是比2.3写的封装的接口多了一些,比如删除类的写法就多了个类.等等.4.0的改变有一些,但是不是特别大.这个月一 直 ...

  2. HTML5中新增的文件API和拖拽API详解

    文件API 在HTML5之前的,从网页上传文件一次只能上传一个文件,而且也无法对要上传的文件做更深一步的操作. HTML5提供了一个系列关于文件操在的API,通过使用这些API,对于从Web页面访问本 ...

  3. vue.js实战 第一篇 第七章 组件详解_组件通信

    正向数据传递props <div id="app"><my-component message="来自父组件的数据"></my-c ...

  4. vue可视化拖拽生成工具_GitHub - 1260215278/dragUI: 基于vuedraggable.js + uni 的可视化拖拽编程,自动生成项目,自动生成代码,自行导入第三方组件...

    dragUI 用于UNI可拖拽可视化编程 在线演示 效果图 基于 快速开始 参考uni官网安装普通uni项目(运行uni-app)运行到浏览器 另需要手动下载包npm install 项目目录 col ...

  5. vuedraggable能实现自由拖拽功能吗?_基于 vue.js 仿禅道主页拖拽效果

    今天给大家分享一个超不错的Vue仿禅道首页拖拽布局VueDndKon. vue-dnd-kon 基于vuedraggable实现的仿禅道首页拖拽项目.支持模块上下及左右自由拖动布局. 主页分为左右两栏 ...

  6. VUE 拖拽组件 vue.draggable

    中文文档 https://www.itxst.com/vue-draggable/tutorial.html 安装 npm i -S vuedraggable 属性 属性名称 说明 group :gr ...

  7. 自己封装的vue拖拽组件

    自己封装的vue拖拽组件 使用Vue.Draggable实现 Vue.Draggable的基础使用方法可以看看这个哥们的https://blog.csdn.net/zjiang1994/article ...

  8. Vue 实现拖拽模块(二)自定义拖拽组件位置

    上文介绍了 拖拽添加组件 的简单实现,本文将继续给大家分享如何自定义拖拽组件位置的简单实现,文中通过示例代码介绍,感兴趣的小伙伴们可以了解一下 本文主要介绍了 Vue自定义拖拽组件位置的简单实现,具体 ...

  9. Vue 实现拖拽模块(三)自定义拖拽组件的样式

    上文介绍了 自定义拖拽组件位置 的简单实现,本文将继续给大家分享如何自定义拖拽组件位置的简单实现,文中通过示例代码介绍,感兴趣的小伙伴们可以了解一下 本文主要介绍了 Vue 自定义拖拽组件的样式,具体 ...

最新文章

  1. 【前沿科技】看完这篇文章前,你绝对想象不到欧美航空机器人竟然发展到这个程度了!...
  2. ASP.NET 缓存与SQL Server结合使用
  3. apache下支持asp.net的实现方法
  4. php-cgi.exe系统错误 无法启动程序,因为计算机中丢失api-ms-win-crt-conio-l1-1-0.dll 尝试解决安装该程序以解决此问题
  5. 转:Kafka、RabbitMQ、RocketMQ等消息中间件的介绍和对比
  6. 利用 dbghelp.dll 生成 dump 文件
  7. 生物智能与AI——关乎创造、关乎理解(下)
  8. python将字典写入csv_Python如何把字典写入到CSV文件的方法示例
  9. ArrayBuffer和TypedArray,以及Blob的使用
  10. Oracle将数据库中的表数据导入到另一个数据库中
  11. 操作系统读写者问题实验报告_备战秋招——操作系统(2)
  12. 2020-10-21
  13. Qt使用教程(C++版)
  14. matplotlib图表涉及中乱码问题
  15. 计算机网络工资如何计算,2019 税后工资计算器,能够准确算薪
  16. java nio wakeup_Java NIO的wakeup剖析
  17. Javascript 设计模式 -- Revealing Module(揭示模块)模式
  18. Aqara? 华为?智汀?要真的实现万物互联了吗?
  19. 数据分析师前景怎样?为什么企业每年都会在数据分析技术上“砸钱”?
  20. 迷宫问题寻宝(c++实现,求最短路径,显示路径)

热门文章

  1. Git回滚文件常用命令汇总
  2. pipenv的安装和使用
  3. 旺店通·旗舰版和MySQL接口打通对接实战
  4. Selenium WebDriver元素定位方式+定位失败原因总结
  5. 换了手机怎么恢复通讯录?换机之前你要了解的小技巧
  6. Appium安装卸载和判断应用是否已经安装
  7. 照明物联网将对LED产业产生哪些变革?
  8. 部署ebe-shop商城系统(使用IDEA克隆Git项目)
  9. apache POI3.2 java操作excel 设置数据有效性,实现excel单元格列表和提示
  10. 拉脱维亚免费邮箱支持SMTP发送邮件