Draggable为基于Sortable.js的vue组件,用以实现拖拽功能。
npm install vuedraggable import draggable from 'vuedraggable' 定义一个json串 list,实现它的拖拽排序。
<template>   <div>     <!-- 调用组件  -->     <draggable element="ul" v-model="list">       <li v-for="item in list">{{item.name}}</li>     </draggable>     <!-- 输出list数据 -->     {{list}}   </div> </template>  <script> // 引入拖拽组件 import draggable from 'vuedraggable' export default {   name: 'demo',   components: {     //调用组件     draggable,   },   data () {     return {       list:[         {           id: 1,           name: 'a'         },         {           id: 2,           name: 'b'         },         {           id: 3,           name: 'c'         },         {           id: 4,           name: 'd'         },         {           id: 5,           name: 'e'         },         {           id: 6,           name: 'f'         },       ]     }   }, } </script> Array,非必须,默认为null
v-model引入。<draggable v-model="myArray"> Array,非必须,默认为null
value的替代品。v-model不能共用String,默认div
<draggable>标签在渲染后展现出来的标签类型Object
filter时是否触发event.preventDefault()默认触发data-id 函数配置
function,默认值: 无处理
options的group项的pull项处理,当pull:'clone时的拖拽的回调函数’true时克隆function,默认值:null
evt  evt为object<draggable element="ul" v-model="list" :move='allow'> ... methods: {   allow(evt) {     console.log(evt.draggedContext.index)     console.log(evt.draggedContext.element)     console.log(evt.draggedContext.futureIndex)     console.log(evt.relatedContext.index)     console.log(evt.relatedContext.element)     console.log(evt.relatedContext.list)     console.log(evt.relatedContext.component)     return (evt.draggedContext.element.name!== 'b')   } } Object,默认值:null
props和on  props用来代理UI组件需要绑定的属性(:)on用来代理UI组件需要绑定的事件(@)<draggable element="el-collapse" :list="list" :component-data="getComponentData()">   <el-collapse-item v-for="e in list" :title="e.title" :name="e.name" :key="e.name">     <div>{{e.description}}</div>    </el-collapse-item> </draggable> methods: {   handleChange() {     console.log('changed');   },   inputChanged(value) {     this.activeNames = value;   },   getComponentData() {     return {       on: {         change: this.handleChange,         input: this.inputChanged       },       props: {         value: this.activeNames       }     };   } } 有以下几种
start, add, remove, update, end, choose, sort, filter, clone 参数带有如下属性:
提供一个footer插槽,在排序列表之下。 
 永远位于最下方。
<draggable v-model="myArray" :options="{draggable:'.item'}">     <div v-for="element in myArray" :key="element.id" class="item">         {{element.name}}     </div>     <button slot="footer" @click="addPeople">Add</button> </draggable>