Vue开发实战

递归组件

关键是组件在模板内能调用自身,关键是name属性

首先我们先定义数据格式

list: [
  {
    title: '标题1'
  },
  {
    title: '标题2',
    children: [
      {
        title: '标题2-子标题1'
      },
      {
        title: '标题2-子标题2'
      }
    ]
  },
  {
    title: '标题3',
    children: [
      {
        title: '标题3-子标题1',
        children: [
          {
            title: '标题3-子标题1-子标题1'
          },
          {
            title: '标题3-子标题1-子标题2'
          }
        ]
      }
    ]
  }
]
View Code

首先我们父组件代码

<div v-for='v in list' :key='v.title'>
      <div>{{v.title}}</div>
      <v-menu v-if='v.children' :data='v.children'></v-menu>
    </div>

子组件代码

使用name来调用自身实现递归

<template>
  <div>
    <div v-for='(v, idx) in data' :key='idx'>
      <div>{{v.title}}</div>
      <menu-item v-show='v.children' :data='v.children'></menu-item>
    </div>
  </div>
</template>

<script>
export default {
  name: 'menu-item',
  props: {
    data: {
      type: Array,
      default: () => []
    }
  }
}
</script>

 

转载于:https://www.cnblogs.com/sonwrain/p/10822994.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值