drag and drop ใน vue.js

การใช้งานฟีเจอร์ Drag and Drop ใน Vue.js สามารถทำได้โดยใช้ HTML5 Drag and Drop API ร่วมกับการจัดการเหตุการณ์ใน Vue.js. นี่คือขั้นตอนที่คุณต้องทำเพื่อสร้างการลากและวางใน Vue.js:

  1. สร้าง HTML Markup:

    • สร้างส่วนของ HTML ที่คุณต้องการให้ผู้ใช้ลากและวาง. เพิ่ม draggable attribute เพื่อให้ DOM element สามารถลาก.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <template>
    <div>
    <div
    class="draggable-item"
    v-for="(item, index) in items"
    :key="index"
    :draggable="true"
    @dragstart="dragStart(index)"
    @dragover="dragOver(index)"
    @drop="drop(index)"
    >
    {{ item }}
    </div>
    </div>
    </template>
  2. สร้าง Data ใน Vue.js:

    • สร้างข้อมูลที่คุณต้องการลากและวางในคุณสมบัติ data ของ Vue.js.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <script>
    export default {
    data() {
    return {
    items: ['ไอเท็ม 1', 'ไอเท็ม 2', 'ไอเท็ม 3']
    };
    },
    methods: {
    // เมธอดสำหรับการลากและวาง
    dragStart(index) {
    // เริ่มเลือกการลาก
    event.dataTransfer.setData('text/plain', index);
    },
    dragOver(index) {
    // อนุญาตให้ลากและวางข้อมูลที่นี่
    event.preventDefault();
    },
    drop(toIndex) {
    // ดึงข้อมูลที่ลากมาจากข้อมูลปัจจุบัน
    const fromIndex = event.dataTransfer.getData('text/plain');
    const draggedItem = this.items[fromIndex];

    // ลบไอเท็มที่ลากจากตำแหน่งเดิม
    this.items.splice(fromIndex, 1);

    // แทรกไอเท็มที่ลากเข้าในตำแหน่งใหม่
    this.items.splice(toIndex, 0, draggedItem);
    }
    }
    };
    </script>
  3. เพิ่ม CSS Style:

    • เพิ่ม CSS เพื่อสร้างสไตล์สำหรับ DOM elements ที่สามารถลากและวาง.
    1
    2
    3
    4
    5
    6
    7
    8
    <style>
    .draggable-item {
    padding: 10px;
    border: 1px solid #ccc;
    margin: 5px;
    cursor: pointer;
    }
    </style>
  4. ทดสอบและใช้งาน:

    • เมื่อคุณสร้างโค้ดด้วยการลากและวางแล้ว คุณสามารถทดสอบโดยการลากและวางไอเท็มในลิสต์ ไอเท็มจะถูกเรียงลำดับใหม่ตามที่คุณลากและวาง.

นี่คือวิธีการสร้างการลากและวางใน Vue.js ในตัวอย่างนี้เราใช้งาน Drag and Drop API และเหตุการณ์ Vue.js เพื่อจัดการการลากและวาง.