v-for实现递归组件

组件代码

<template v-for="task1 in task0.list">
    <div class="db_item">
        <a class="db_item_tit" href="javascript:;" @click="activeTab(task1.menuId)"><i class="fa fa-folder"></i>{{task1.name}}({{task1.taskCount}})</a>
	    <ul>
		    <task-item :task-item="task1"></task-item>
		    <div class="clear"></div>
	    </ul>
    </div>
</template>

需要递归的组件taskItem(template要一个标签包起来,比如:div

<script type="text/javascript">
	Vue.component('taskItem', {
		template: ''+
				'<div>' +
					'<div v-if="taskItem.tasks">' +
						'<li v-for="task0 in taskItem.tasks"><a href="javascript:;" @click="activeTab(taskItem.menuId, task0.actId)"><i class="fa fa-calendar-check-o"></i>{{task0.actName}}<em>({{task0.taskCount}})</em></a></li>' +
					'</div>' +
					'<div v-if="taskItem.list">' +
						'<task-item v-for="task0 in taskItem.list" :task-item="task0"></task-item>' +
					'</div>' +
				'</div>' +
				'',
		data:function() {
			return {
			}
		},
		props: {
			taskItem:[Object],
		},
		methods:{
			activeTab: function (menuId, actId) {
				//...
			},
		}
	});
</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值