一、使用vuedraggable是标准的组件式封装 或 vue-dragging 指令方式 实现拖拽调整顺序功能。

1:安装依赖

npm install vuedraggable或yarn add vuedraggable

2:使用全局注册 或者 哪个页面使用就引入哪个页面也可。

import vuedraggable from 'vuedraggable'

在使用时,可通过 v-model 来双向绑定本地 data,如果需要更新或者是触发父组件监听的事件,可以在 updated() 中去 emit

引入后直接声明该组件然后使用即可,示例代码:

<template><vuedraggable class="wrapper" v-model="list"><transition-group><div v-for="item in list" :key="item" class="item">{{item}}</div></transition-group></vuedraggable>
</template><script>
import vuedraggable from 'vuedraggable';export default {name: 'Index',components: {vuedraggable},props: {},data() {return {list: [1,2,34,4,54,5]}},updated() {console.log(this.list)},methods: {}
}
</script><style scoped lang="scss">
.wrapper {display: flex;justify-content: center;width: 100%;.item{width: 300px;height: 50px;background-color: #42b983;color: #ffffff;}
}
</style>

二、vue-dragging 的 npm 包的名字是 awe-dnd,并不是 vue-dragging,这个库的特点是封装了 v-dragging 全局指令,然后通过全局指令去数据绑定等。

与vuedraggable相比,awe-dnd没有双向绑定,因此提供了事件,在拖拽结束时用来更新列表 或 去触发父组件监听的事件。

1:安装依赖

npm install awe-dnd --save或yarn add awe-and

项目中main.js 文件

import VueDND from 'awe-dnd'
Vue.use(VueDND);
<template><div class="color-list"><divclass="color-item"v-for="color in colors" v-dragging="{ item: color, list: colors, group: 'color' }":key="color.text">{{color.text}}</div></div>
</template><script>
export default {data () {return {colors: [{text: "Aquamarine"}, {text: "Hotpink"}, {text: "Gold"}, {text: "Crimson"}, {text: "Blueviolet"}, {text: "Lightblue"}, {text: "Cornflowerblue"}, {text: "Skyblue"}, {text: "Burlywood"}]}},
}
</script>

可以发现绑定时 v-dragging="{ item: color, list: colors, group: 'color' }" 这种形式进行指令绑定,其中 item 就是单个对象,而 list 则是数据列表,group 则是用来声明一个组,来保证可以在一个页面中进行多个数据源的操作。

而提供的两个事件方法如下:

export default {mounted () {this.$dragging.$on('dragged', ({ value }) => {console.log(value.item)console.log(value.list)console.log(value.otherData)})this.$dragging.$on('dragend', (res) => {console.error(res);})}
}

一般使用的方法就是:

this.$dragging.$on('dragend', (res) => {console.error(res);
})

vue中实现拖拽调整顺序功能相关推荐

  1. vue中实现拖拽排序

    原生拖拽 API 实现拖拽 设置元素 dragable 将元素的 dragable 属性设置 为 true (文本 图片 链接 的draggable 属性默认为 true)则元素可拖放 <div ...

  2. 如何在vue中实现拖拽功能

    HTML5 drag & drop 拖拽与拖放 想要实现该功能,先了解一下H5中的drag和drop这2个概念.

  3. vue中实现拖拽功能

    自定义的全局指令 提示:拖拽指令 文章目录 自定义的全局指令 一.拖拽 1.自定义拖拽指令 2.页面挂载 3.css样式 提示:以下是本篇文章正文内容,下面案例可供参考 一.拖拽 1.自定义拖拽指令 ...

  4. vue 表格左右拖拽调整列宽_解决 | iview低版本实现表格拖拽,滚动条列宽计算问题...

    文 / 景朝霞 来源公号 / 朝霞的光影笔记 ID / zhaoxiajingjing 点个赞,让我知道你来过~ 如果大佬觉得我的方案太low,请打脸轻一点~ 如果大佬有更好的方案,请不吝赐教~ 0 ...

  5. vuedraggable自由拖拽html,vue中draggable拖拽列表的使用

    1.安装 npm install vuedraggable 或者使用镜像安装 cnpm install vuedraggable 2.使用 首先在使用的组件中引入 import draggable f ...

  6. Vue中实现拖拽效果

    Vue2项目中遇到需求要求页面左侧部分实现拖拽效果 实现效果: 1665739151500 实现代码: 一.使用盒子包裹需要拖拽的区域,并绑定ref 二.使用$ref获取DOM信息 具体代码(这个方法 ...

  7. vue中使用拖拽drag

    被拖拽的节点 dragable="true" @dragstart="drag" 拖入的节点 @drop="drop" @dragover= ...

  8. vue移动端拖拽悬浮按钮

    vue移动端拖拽悬浮按钮 功能介绍: 大致需求: 整体思路: 简单效果展示: 具体实现: 一.position:fixed布局: 二.touch事件绑定: 三.页面引入: 功能介绍: 在移动端开发中, ...

  9. css鼠标拖拉卡顿_vue中解决拖拽改变存在iframe的div大小时卡顿问题

    写在最前 针对于在vue中实现拖拽改变两左右个div大小的方式,请查看上一篇文章<vue中实现拖动调整左右两侧div的宽度>.此文章主要针对于实际应用中需要拖拽改变大小的组件中使用ifra ...

最新文章

  1. CRM与SCM整合 让企业供应链无缝连接
  2. centos7: ifconfig出现command not found解决办法
  3. python中注释语句和运算_python 运算及注释
  4. 如何把Access转成SQL Server的方法介绍
  5. 量化评估推荐系统效果
  6. c3p0配置及其说明
  7. AndroidStudio_java.util.ConcurrentModificationException---Android原生开发工作笔记237
  8. 数组元素替换_LeetCode基础算法题第183篇:一维数组的重新洗牌
  9. 游戏开发之C++多继承及虚继承(C++基础)
  10. QT 中控件内坐标转换为父窗口坐标或屏幕坐标
  11. Python 语言简介与入门(1)
  12. IDEA jsp页面代码没有高亮
  13. 2006年中国首届杰出数据库工程师评选面试实录
  14. 第二十七篇 -- 学习第四十五天打卡20190810
  15. 《设计模式》——接口隔离原则
  16. 如何使用加速度计实现倾斜角度计算
  17. 计算机课板书图片,小学信息技术课《插入图片及剪贴画》说课稿
  18. 给在读研究生+未来要读研同学们的一封受益匪浅的信
  19. uniapp h5、app引用外部在线js
  20. apache中配置404错误页的方法

热门文章

  1. stm32编译错误error: #20: identifier “USART_IT_RXNE“ is undefined
  2. 万由nas风扇速度控制
  3. 工业云到工业互联网平台的发展之路|中机智库
  4. android 媒体查询,只针对移动设备的媒体查询
  5. HDU 5963 朋友(找规律)
  6. python朋友圈头像_Python读取微信好友头像,拼成祝福语九宫格
  7. sublime markdown 配色
  8. 【华人学者风采】张磊 香港理工大学
  9. 转置-置换-向量空间R
  10. Adobe Audition 入门教程