Vue组件递归渲染

父级菜单

<template>
	<div>
		<ul>
			<li v-for="(item,index) in asideList" ::key = "index" >
				<p class="main-title">
					<span class="title">{{item.title}}</span>
					<span class="iconfont icon-arrow-right-1"></span>
				</p>
				<ul v-if="item.children" >
					<AsideItem :asideChildren="item.children" ></AsideItem>
				</ul>
			</li>
		</ul>
	</div>
</template>

数据格式

	asideList: [
					{
						title: '一级标题',
						children: [
							{
								title: '二级标题',
								children: [
									{
										title: '三级标题',
									},
									{
										title: '三级标题',
									},
									{
										title: '三级标题',
									}
								]
							},
							{title: '二级标题'},
							{title: '二级标题'},
						]
					}
				]

子组件递归(直接使用name)


<template>
	<div>
		<li v-for="(item,index) in asideChildren" v-bind:key="index" >
			<p class="secondary-title" @click.prevent="secondaryDropDown" >
				<span>{{item.title}}</span>
			</p>
			<ul v-if="item.children">
				<AsideItem :asideChildren="item.children"></AsideItem>
			</ul>			
		</li>
	</div>
</template>
 
<script>
	export default{
		name: 'AsideItem',
		props: {
			asideChildren: {
				type: Array
			}
		},
	}
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值