vue递归组件

这是用来展示后台左侧导航的代码

<template>
	<div>
		<el-menu router unique-opened>
			<el-submenu
				:index="index + ''"
				v-for="(obj, index) in data"
				:key="obj.name"
			>
				<template slot="title">
					<router-link
						:to="obj.path === '/' || obj.path === '/appraise' ? obj.path : ''"
					>
						<i :class="obj.meta.icon"></i>
						<span>{{ obj.meta.title }}</span>
					</router-link>
				</template>
				<div v-for="data in obj.children" :key="data.name">
					/* data.meta.show 是用来判断路由是否在左侧导航显示的 */
					<el-menu-item-group v-if="data.meta.show">
						<el-menu-item :index="`${obj.path}/${data.path}`">{{
							data.meta.title
						}}</el-menu-item>
						<Deep-component
							v-if="data.children"
							:data="data.children"
						></Deep-component>
					</el-menu-item-group>
				</div>
			</el-submenu>
		</el-menu>
	</div>
</template>


<script>
import { mapState } from 'vuex'
export default {
	name: 'DeepComponent',
	props: {
		data: {
			type: Array,
			default: [],
		},
	},
	name: 'DeepComponent',
	computed: {
		...mapState(['routes']),
	},
}
</script>```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值