Vue 드래그 앤 드롭으로 항목을 정렬할 때

설치

npm i -s vuedraggable

출처

  • draggable로 둘러싸인 항목이 드래그 대상이 됩니다
  • group을 지정하면 각각 준비된draggable 내의 항목을 바꿀 수 있습니다
  • DraggAndDrop.vue
    <template>
      <div id="app">
        <div class="box">
          <draggable v-model="array01" group="group1">
            <div v-for="element in array01" :key="element.id" class="item">
                {{element.name}}
            </div>
          </draggable>
        </div>
        <div class="box">
          <draggable v-model="array02" group="group1">
            <div v-for="element in array02" :key="element.id" class="item">
                {{element.name}}
            </div>
          </draggable>
        </div>
        <div class="box">
          <draggable v-model="array03">
            <div v-for="element in array03" :key="element.id" class="item">
                {{element.name}}
            </div>
          </draggable>
        </div>
      </div>
    </template>
    
    <script>
    import draggable from 'vuedraggable'
    
    export default {
      name: 'DraggAndDrop',
      components: {
          draggable,
      },
      data: () => {
        return {
          array01: [
            { id:'id01', name:'ジャガイモ' },
            { id:'id02', name:'玉ねぎ' },
            { id:'id03', name:'人参' },
          ],
          array02: [
            { id:'id04', name:'牛肉' },
            { id:'id05', name:'豚肉' },
          ],
          array03: [
            { id:'id06', name:'肉まん' },
            { id:'id07', name:'餃子' },
          ]
        }
      }
    }
    </script>
    
    <style>
    .box {
      padding: 0.5em 1em;
      margin: 2em 0;
      background: #FFF;
      border: solid 3px #6091d3;
      border-radius: 10px;
    }
    .item {
      padding: 10px;
      border: solid #ddd 1px;
      border-radius: 10px;
    }
    </style>
    

    실행



    드래그 앤 드롭 작업 후 화면


    좋은 웹페이지 즐겨찾기