news 2026/6/10 19:18:52

12.17 vue递归组件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
12.17 vue递归组件

recursion 递归

使用递归组件可以方便地在组件内部递归地渲染子节点。例如,可以使用一个名为 tree-node 的组件,该组件在其模板中递归地包含自身,并在每一层次上显示节点的标签和其子节点。这样,当数据发生变化时,组件会自动重新渲染,并保持节点层次结构的正确性。

![[850X850.PNG]]

多级菜单数据

data.js

const data = [ { id: 1, title: '汉堡店', cont: [ { id: 2, title: '小吃系列', cont: [ { id: 3, title: '轰炸大鱿鱼'}, { id: 4, title: '香酥鸡柳'}, { id: 5, title: '脆皮土豆'} ] }, { id: 6, title: '汉堡系列', cont: [ { id: 7, title: '深海鳕鱼堡'}, { id: 8, title: '香辣鸡腿堡'}, { id: 9, title: '劲脆鸡腿堡'} ] }, { id: 10, title: '饮品系列', cont: [ { id: 11, title: '可口可乐'}, { id: 12, title: '雪碧'}, { id: 13, title: '冰淇淋'} ] } ] }, { id: 11, title: '牛排店', cont: [ { id: 12, title: '牛排系列', cont: [ { id: 13, title: '黑椒牛排'}, { id: 14, title: '西冷牛排'}, { id: 15, title: '菲力牛排'} ] }, { id: 16, title: '咖啡系列', cont: [ { id: 17, title: '卡布奇诺'}, { id: 18, title: '摩卡'} ] }, { id: 20, title: '沙拉系列', cont: [ { id: 21, title: '水果沙拉'}, { id: 22, title: '鸡胸肉沙拉'}, { id: 23, title: '牛排沙拉'} ] } ] }, { id: 31, title: '红酒店', cont: [ { id: 32, title: '国产葡萄酒系列', cont: [ { id: 33, title: '长城红标'}, { id: 34, title: '张裕二星'}, { id: 35, title: '王朝干红'} ] }, { id: 36, title: '进口葡萄酒系列', cont: [ { id: 37, title: '法国都夏'}, { id: 38, title: '拉菲庄园'}, { id: 39, title: '卡斯特.巴蒂'} ] }, { id: 40, title: '洋酒系列', cont: [ { id: 41, title: '杰克丹尼'}, { id: 42, title: '人头马部落'}, { id: 43, title: '轩尼诗VSOP'} ] } ] } ] export default data

递归****组件定义

Vue3

递归****组件的父组件

<script setup> import foodMenu from './foodMenu.vue'; import menuData from './data.js' </script> <template> <div class="recursion"> <h3>递归组件的父组件</h3> <foodMenu :menu-data="menuData"></foodMenu> </div> </template> <style lang="scss" scoped> </style>

递归****组件

<script setup> defineProps({ menuData: Array }) </script> <template> <ul> <li v-for="menu in menuData" :key="menu.id"> <p>---{{ menu.title }}</p> <food-menu :menu-data="menu.cont"></food-menu> </li> </ul> </template> <style lang="scss" scoped></style>

Vue2

递归****组件的父组件

<template> <div id="app"> <food-menu :menu-data="menuData"></food-menu> </div> </template> <script> import menuData from "./data"; import foodMenu from './FoodMenu.vue' export default { data(){ return { menuData: menuData } }, components: { foodMenu } }; </script> <style lang="scss"> </style>

递归****组件

foodMenu.vue

递归组件的技术要点: 一定要设置name属性,递归使用时,用得就是name属性的值

<template> <ul> <li v-for="menu in menuData" :key="menu.id"> <p>---{{ menu.title }}</p> <food-menu :menu-data="menu.cont"></food-menu> <!-- 等价于: <ul> <li> <p></p> <ul> <li> <p></p> </li> </ul> </li> </ul> --> </li> </ul> </template> <script> export default { // 组件的name属性有三种用法 // 1. <keep-alive include="组件的name"></keep-alive> // 2. vue devtools 显示组件的name // 3. 递归组件 name: "foodMenu", props: ["menuData"], data() { return {}; }, }; </script> <style> </style>
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 19:10:14

Ultralytics YOLO终极指南:5分钟从零部署AI视觉应用

Ultralytics YOLO终极指南&#xff1a;5分钟从零部署AI视觉应用 【免费下载链接】ultralytics ultralytics - 提供 YOLOv8 模型&#xff0c;用于目标检测、图像分割、姿态估计和图像分类&#xff0c;适合机器学习和计算机视觉领域的开发者。 项目地址: https://gitcode.com/G…

作者头像 李华
网站建设 2026/6/10 16:30:25

Three-DXF终极指南:浏览器中轻松查看CAD设计文件

Three-DXF终极指南&#xff1a;浏览器中轻松查看CAD设计文件 【免费下载链接】three-dxf A dxf viewer for the browser using three.js 项目地址: https://gitcode.com/gh_mirrors/th/three-dxf 还在为查看CAD设计文件而烦恼吗&#xff1f;&#x1f914; 每次都需要安装…

作者头像 李华
网站建设 2026/6/10 18:04:34

Unity语音识别深度解析:Whisper.unity实战攻略

Unity语音识别深度解析&#xff1a;Whisper.unity实战攻略 【免费下载链接】whisper.unity Running speech to text model (whisper.cpp) in Unity3d on your local machine. 项目地址: https://gitcode.com/gh_mirrors/wh/whisper.unity 想要在Unity项目中实现高效精准…

作者头像 李华
网站建设 2026/6/10 11:07:42

【必藏】实在Agent智能体搭建全攻略:10分钟从零打造专属AI助手,避开90%新手陷阱,效率翻倍!

本文是一份实在Agent智能体搭建指南&#xff0c;首先介绍了实在Agent的基础界面与功能&#xff0c;包括左侧功能区、中侧选择区和底侧输入区。然后以"BOSS直聘自动打招呼"为例&#xff0c;详细讲解了从明确智能体定位、拆解业务流程、设计实现方案到使用实在Agent搭建…

作者头像 李华
网站建设 2026/6/10 19:13:32

AMESIM联合STAR CCM+实现单体电芯热仿真模型案例探究

电池热管理仿真&#xff0c;AMESIM联合STAR CCM电芯热仿真模型案例 此模型为单体电芯热仿真&#xff0c;非系统PACK热仿真&#xff0c;注意 AMESIM实现部分&#xff1a;基于二阶等效电路模型计算产热功率&#xff0c;模型包含完整的二阶等效电路模型参数&#xff0c;可根据需求…

作者头像 李华
网站建设 2026/6/10 14:36:58

AUTOENV 论文通俗解释:AI 代理如何在不同“世界”里学习?

AUTOENV&#xff1a;自动生成环境框架&#xff0c;助力跨环境代理学习测量 今天&#xff0c;我想和大家介绍一篇发表于arXiv的论文&#xff1a;《AUTOENV: Automated Environments for Measuring Cross-Environment Agent Learning》。这篇论文由香港科技大学&#xff08;广州校…

作者头像 李华