การใช้งานฟีเจอร์ Drag and Drop ใน Vue.js สามารถทำได้โดยใช้ HTML5 Drag and Drop API ร่วมกับการจัดการเหตุการณ์ใน Vue.js. นี่คือขั้นตอนที่คุณต้องทำเพื่อสร้างการลากและวางใน Vue.js:
สร้าง 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>- สร้างส่วนของ HTML ที่คุณต้องการให้ผู้ใช้ลากและวาง. เพิ่ม
สร้าง 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>- สร้างข้อมูลที่คุณต้องการลากและวางในคุณสมบัติ
เพิ่ม 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>ทดสอบและใช้งาน:
- เมื่อคุณสร้างโค้ดด้วยการลากและวางแล้ว คุณสามารถทดสอบโดยการลากและวางไอเท็มในลิสต์ ไอเท็มจะถูกเรียงลำดับใหม่ตามที่คุณลากและวาง.
นี่คือวิธีการสร้างการลากและวางใน Vue.js ในตัวอย่างนี้เราใช้งาน Drag and Drop API และเหตุการณ์ Vue.js เพื่อจัดการการลากและวาง.