// 引入 vue.draggable 组件
import draggable from 'vuedraggable';
export default {
components: {
draggable, // 注册 draggable 组件
},
data() {
return {
list: [ // 列表数据,用于展示可拖拽的项目
{ name: 'Item 1' },
{ name: 'Item 2' },
{ name: 'Item 3' },
{ name: 'Item 4' },
],
};
},
methods: {
onMove({ relatedContext, draggedContext }) { // 拖拽时触发的事件
const relatedElement = relatedContext.element;
const draggedElement = draggedContext.element;
return (!relatedElement || !draggedElement) || (!relatedElement.fixed && !draggedElement.fixed);
}
},
template: `
<draggable v-model="list" @start="drag=true" @end="drag=false" @change="onMove">
<div v-for="element in list" :key="element.name">
{{ element.name }}
</div>
</draggable>
`,
};
v-model 绑定到一个数组(如 list),当用户拖拽元素时,数组中的顺序会随之改变。onMove 方法来限制某些元素是否可以被拖拽。v-for 来遍历 list 数组,并为每个元素生成一个 div,这些 div 就是可以拖拽的项目。如果你需要更复杂的功能(如分组拖拽、与后端交互等),可以根据需求进一步扩展。
上一篇:vue判断字符串包含字符
下一篇:vue mock
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站