Vue中使用 vuedraggable进行拖拽

本文主要记录下 vuedraggable拖拽 在 vue2 和 vue3 中使用上的区别。

一、安装

vue2 安装命令
javascript 复制代码
npm i vuedraggable -S

vue3 安装会报错:Cannot read property 'header' of undefined。安装最新版本的vuedraggable即可,命令行如下

vue3 安装命令
javascript 复制代码
npm i -S vuedraggable@next

二、使用

vue2 使用
javascript 复制代码
<template>
  <draggable v-model="myArray">
    <div v-for="element in myArray" :key="element.id">{{element.name}}</div>
  </draggable>
</template>
 
<script>
import draggable from 'vuedraggable'
 
export default {
  components: {
    draggable
  },
  data () {
    return {
      myArray: [
        { id: 1, name: 'Jenny' },
        { id: 2, name: 'kevin' },
        { id: 3, name: 'lili' }
      ]
    }
  }
}
</script>
vue3 使用
javascript 复制代码
<template>
  <draggable 
    v-model="data.myArray" 
    group="people" 
    @start="data.drag=true" 
    @end="data.drag=false" 
    item-key="id">
    <template #item="{element}">
      <div>{{element.name}}</div>
     </template>
  </draggable>
</template>
 
<script lang="ts" setup>
import { reactive } from 'vue'
import draggable from 'vuedraggable'
    const data = reactive({
      drag: false,
      myArray: [
        { id: 1, name: '张三' },
        { id: 2, name: '李四' },
        { id: 3, name: '王五' }
      ]
    })

</script>
相关推荐
学嵌入式的小杨同学2 分钟前
从零打造 Linux 终端 MP3 播放器!用 C 语言实现音乐自由
linux·c语言·开发语言·前端·vscode·ci/cd·vim
weixin_4255437332 分钟前
TRAE CN3.3.25 构建的Electron简易DEMO应用
前端·typescript·electron·vite·nestjs
Mr Xu_1 小时前
【Vue3 + ECharts 实战】正确使用 showLoading、resize 与 dispose 避免内存泄漏
前端·信息可视化·vue·echarts
0思必得02 小时前
[Web自动化] Selenium设置相关执行文件路径
前端·爬虫·python·selenium·自动化
雯0609~2 小时前
hiprint:实现项目部署与打印1-官网提供普通html版本
前端·html
yuezhilangniao2 小时前
AI智能体全栈开发工程化规范 备忘 ~ fastAPI+Next.js
javascript·人工智能·fastapi
不绝1912 小时前
UGUI——进阶篇
前端
~牧马~2 小时前
【记录63】electron打包vue项目之踩坑
vue.js·electron·electron与node兼容
Exquisite.3 小时前
企业高性能web服务器(4)
运维·服务器·前端·网络·mysql
铅笔侠_小龙虾3 小时前
Flutter Demo
开发语言·javascript·flutter