vue3 递归循环展示下级盒子

在这里插入图片描述

index.vue主文件

<template>
  <div>
    <RecursiveCard :data="rootTask" />
  </div>
</template>

<script>
import { reactive } from 'vue';
import RecursiveCard from './test.vue'; // 递归组件的路径

export default {
  components: {
    RecursiveCard,
  },
  setup() {
    const rootTask = reactive({
      list: ['List item 1', 'List item 2', 'List item 3', 'List item 4'],
      children: []
    });

    return {
      rootTask
    };
  }
};
</script>

<style>
/* 这里可以添加一些全局样式 */
</style>

test.vue子组件【递归】


<template>
  <el-card style="margin-bottom: 20px;">
    <template #header>
      <div class="card-header">
        <span><el-button type="primary" @click="addSubTask">新增子作业</el-button></span>
      </div>
    </template>
    <p v-for="(item, index) in data.list" :key="index" class="text item">
      {{ item }}
    </p>
    <template #footer>Footer content</template>
    
    <div v-if="data.children && data.children.length">
      <RecursiveCard v-for="(child, index) in data.children" :key="index" :data="child" />
    </div>
  </el-card>
</template>

<script>
export default {
  name: 'RecursiveCard',
  props: {
    data: {
      type: Object,
      required: true,
    },
  },
  methods: {
    addSubTask() {
      // 这里添加子作业逻辑
      const newSubTask = {
        list: ['List item 1', 'List item 2', 'List item 3', 'List item 4'],
        children: []  // 你可以根据需要初始化子作业的 children
      };
      if (!this.data.children) {
        this.$set(this.data, 'children', []);
      }
      this.data.children.push(newSubTask);
    },
  },
};
</script>

<style scoped>
/* 这里可以添加一些局部样式 */
</style>

在这里插入图片描述

相关推荐

  1. Vue3+elementPlus组件

    2024-06-06 10:50:06       34 阅读
  2. Vue.js 3.0】组件实现思路

    2024-06-06 10:50:06       42 阅读
  3. vue以及示例

    2024-06-06 10:50:06       54 阅读
  4. 函数——3(c++)

    2024-06-06 10:50:06       48 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-06 10:50:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-06 10:50:06       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-06 10:50:06       82 阅读
  4. Python语言-面向对象

    2024-06-06 10:50:06       91 阅读

热门阅读

  1. 虚拟环境导致的段错误

    2024-06-06 10:50:06       32 阅读
  2. RGMII接口--->(010)FPGA实现RGMII接口(十)

    2024-06-06 10:50:06       27 阅读
  3. 055、Python 关于全局变量和局部变量

    2024-06-06 10:50:06       27 阅读
  4. 【无标题】

    2024-06-06 10:50:06       24 阅读
  5. 数据结构与算法-16_ 哈希表

    2024-06-06 10:50:06       23 阅读
  6. 爬山算法介绍

    2024-06-06 10:50:06       33 阅读
  7. python-01

    python-01

    2024-06-06 10:50:06      26 阅读
  8. 2024.05.21 校招 实习 内推 面经

    2024-06-06 10:50:06       27 阅读
  9. expect自动化交互应用程序工具

    2024-06-06 10:50:06       29 阅读
  10. 比特币的理论上限是多少个?

    2024-06-06 10:50:06       30 阅读
  11. SCSS 和 Sass的区别?

    2024-06-06 10:50:06       29 阅读