嵌套代码:
<template>
<draggable class="dragArea" tag="ul" :list="tasks" :group="{ name: 'g1' }">
<li v-for="el in tasks" :key="el.name">
<p>{{ el.name }}</p>
<nested-draggable :tasks="el.tasks"/>
</li>
</draggable>
</template>
<script>
import draggable from 'vuedraggable';
export default {
props: {
tasks: {
required: true,
type: Array,
},
},
components: {
draggable,
},
name: 'nested-draggable',
};
</script>
<style scoped>
.dragArea {
min-height: 50px;
outline: 1px dashed;
}
</style>
调用代码(递归组件)
data() {
return {
list: [
{
name: 'task1',
tasks: [
{ name: 'task 2', tasks: [] },
],
},
{
name: 'task 3',
tasks: [
{ name: 'task 4', tasks: [] },
],
},
{
name: 'task 5',
tasks: [],
},
],
};
}
直接这样用就好了
nested-draggable(:tasks="list")
网友评论