vue.dragable.for

HTML

<script src="https://cdn.jsdelivr.net/sortable/1.4.2/Sortable.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.13.1/lodash.min.js"></script>
<script src="https://cdn.rawgit.com/David-Desmaisons/Vue.Draggable/master/dist/vuedraggable.min.js"></script>
<div id="main">
  <h1>Vue Draggable</h2>           
  <div class="drag">
    <h2>List 1 Draggable</h2>
      <draggable v-model="list" class="dragArea" :options="{group:{ name:'people' }}">
        <div v-for="(element, index) in list" :key="element.name">{{element.name}}</div>
      </draggable>
    <h2>List 2 Draggable</h2>
      <draggable v-model="list2" class="dragArea" :options="{group:'people'}" @add="onAdd">
        <div v-for="(element, index) in list2" :key="element.name">{{element.name}}</div>
      </draggable>
  </div>
  
     <div class="normal">
            <h2>List 1 v-for</h2>
            <div>
                <div v-for="element in list">{{element.name}}</div>
             </div>

            <h2>List 2 v-for</h2>
            <div>
                <div v-for="element in list2">{{element.name}}</div>
            </div>
        </div>
</div>

CSS

.normal {
  background-color: grey;
}

.drag {
  background-color: green;
}

.dragArea {
  min-height: 10px;
}

JavaScript

var vm = new Vue({
  el: "#main",
  data: {
    list: [{
      name: "John"
    }, {
      name: "Joao"
    }, {
      name: "Jean"
    }],
    list2: [{
      name: "Juan"
    }, {
      name: "Edgard"
    }, {
      name: "Johnson"
    }]
  },
  methods: {
    add: function() {
      this.list.push({
        name: 'Juan'
      });
    },
    replace: function() {
      this.list = [{
        name: 'Edgard'
      }]
    },
    onAdd: function(evt) {
    	console.log(evt.item);
    }
  }
});