vuedraggable实现列表数据拖拽

本文介绍如何在Vue项目中使用vuedraggable插件实现列表元素的拖拽排序功能,包括安装配置、代码示例及响应式数据更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里用的是vuedraggable插件,传送门

在项目文件夹中下载使用

yarn add vuedraggable
 
npm i -S vuedraggable
<template>
  <div>
    <draggable  group="people"
                :list="myArray"
                :disabled="!enabled"
                class="list-group"
                ghost-class="ghost"
                :move="checkMove"
                @start="drag=true" @end="drag=false">
      <div class="list-group-item" v-for="element in myArray" :key="element.id" >{{element.name}}</div>
    </draggable>
  </div>
</template>


<script>
import draggable from 'vuedraggable'

export default {
  components : { draggable},
    data () {
      return {
        enabled: true,
        myArray : []
      }
    },
  methods: {
    checkMove(){
      console.log(this.myArray)//实时myarray数据,每拖动一次就会得到最新的排列数据
    },
    loadData () {
      //请求后台 给this.myArray赋值
    }
  }
}
</script>

<style scoped>
.flip-list-move {
  -webkit-transition: -webkit-transform 0.5s;
  transition: -webkit-transform 0.5s;
  transition: transform 0.5s;
  transition: transform 0.5s, -webkit-transform 0.5s;
}
.no-move {
  -webkit-transition: -webkit-transform 0s;
  transition: -webkit-transform 0s;
  transition: transform 0s;
  transition: transform 0s, -webkit-transform 0s;
}
.ghost {
  opacity: 0.5;
  background: #c8ebfb;
}
.list-group {
  min-height: 20px;
}
.list-group-item {
  cursor: move;
}
.list-group-item i {
  cursor: pointer;
}

.list-group-item:first-child {
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
}
.list-group-item {
  position: relative;
  display: block;
  padding: 0px 15px;
  margin-bottom: -1px;
  background-color: #fff;
  border: 1px solid #ddd;
}
.list-group-item:last-child {
  margin-bottom: 0;
  border-bottom-right-radius: 4px;
  border-bottom-left-radius: 4px;
}
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值