当前位置: 首页 > news >正文

vue3递归组件的使用

HelloWorld .vue

<template><div :key="index" v-for="(item,index) in data">{{item}}<!--递归组件自己调用自己--><HelloWorldTtem v-if='item?.children?.length' :data="item.children"></HelloWorldTtem></div>
</template>
<script setup lang="ts">
import { ref,reactive} from 'vue'
import HelloWorldTtem from './HelloWorld.vue'
type TreeList = {name: string;icon?: string;children?: TreeList[] | [];
};
type Props<T> ={data? : T[] | []
}
defineProps<Props<TreeList>>()
</script>

app.vue

<template><div><HelloWorld :data="data"></HelloWorld></div>
</template>
<script setup lang='ts'>
import { ref,reactive,onMounted} from 'vue'
import HelloWorld from './components/HelloWorld.vue'
// 递归组件
// : 原理跟我们写js递归是一样的 自己调用自己 通过一个条件来结束递归 否则导致内存泄漏
// 定义数据,子组件接受
type TreeList = {name: string;icon?: string;children?: TreeList[] | [];
};
const data = reactive<TreeList[]>([{name: "no.1",children: [{name: "no.1-1",children: [{name: "no.1-1-1",},],},],},{name: "no.2",children: [{name: "no.2-1",},],},{name: "no.3",},
]);</script>
<style scoped lang='scss'>
</style>

相关文章:

  • 品牌网站建设 优帮云色目人
  • 濮阳自适应网站建设关键词大全
  • 达内培训网站开发查排名的网站
  • 大网站是用什么做html5的seo免费教程
  • wordpress打赏积分旧版优化大师
  • 网站制作前景怎么样北京优化seo排名优化
  • 不用vue,只用html,即可简单实现electron项目
  • 初学python的我开始Leetcode题10-3
  • DTO、VO、POJO与实体类使用方案(结合Mapper.xml)
  • HCIA-IP路由基础
  • 计算机网络-----详解HTTPS协议
  • 7.Spring框架
  • 个人技术文档库构建实践:基于Cursor和GitHub的知识管理系统(含cursor rules)
  • 半导体FAB中的服务器硬件故障监控与预防全方案:从预警到零宕机实战
  • 量学云讲堂王岩江宇龙2025年第58期视频 主课正课系统课+收评
  • CTF Writeup: [强网杯 2019]随便注挑战解析
  • 用 Boost 库解析 .ini 和 .json 文件时的“坑”:注释导致的解析错误与解决方案
  • Linux驱动学习day7
  • 【JAVA】idea中打成jar包后报错错误: 找不到或无法加载主类
  • 鸿蒙系统(HarmonyOS)经典红色风格登录页布局
  • 磁悬浮轴承刚度设计:高速转子的稳定秘诀
  • 优化 ArcPy 脚本性能
  • AI知识库搭建需要的开源技术方案
  • Azure 自动化:所需状态配置 (DSC)
  • 【iSAQB软件架构】架构模式
  • (LeetCode 面试经典 150 题) 122. 买卖股票的最佳时机 II (贪心)