美文网首页
vue递归组件

vue递归组件

作者: 风间澈618 | 来源:发表于2018-10-11 16:56 被阅读0次

用vue写后台管理系统侧边栏时,用到了递归组件的问题,有的侧边栏导航可能有多个下级分类,结合element来写的一个递归组件小例子
父组件 index.vue

<template>
       <recursive  :list='trees'></recursive>
</template>
<script>
import recursive from './recursive'
export default {
    components: {
        recursive
    },
    data(){
        return {
            trees: [
                    {
                        id:1,
                        label:"1级目录1",
                        show:true,
                        children:[
                            {
                                id:"1-1",
                                label:"1.1目录"
                            },
                            {
                                id:"1-2",
                                label:"1.2目录"
                            },
                            {
                                id:"1-3",
                                label:"1.3目录"
                            },
                        ]
                    },
                    {
                        id:2,
                        label:"1级目录2",
                        show:true
                    },
                    {
                        id:3,
                        label:"1级目录3",
                        show:true,
                        children:[
                            {
                                id:"3-1",
                                label:"3.1目录"
                            },
                            {
                                id:"3-2",
                                label:"3.2目录",
                                show:false,
                                children:[
                                    {
                                        id:"3-2-1",
                                        label:"3.2.1目录"
                                    },
                                    {
                                        id:"3-2-2",
                                        label:"3.2.2目录"
                                    },
                                    {
                                        id:"3-2-3",
                                        label:"3.2.3目录"
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        id:4,
                        label:"1级目录4",
                        show:true,
                        children:[
                            {
                                id:"4-1",
                                label:"4.1目录"
                            },
                            {
                                id:"4-2",
                                label:"4.2目录",
                                show:true,
                                children:[
                                    {
                                        id:"4-2-1",
                                        label:"4.2.1目录"
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        id:5,
                        label:"1级目录5",
                        show:true,
                        children:[
                            {
                                id:"5-1",
                                label:"5.1目录",
                                show:true,
                                children:[
                                    {
                                        id:"5-1-1",
                                        label:"5.1.1目录"
                                    },
                                    {
                                        id:"5-1-2",
                                        label:"5.1.2目录",
                                        show:true,
                                        children:[
                                            {
                                                id:"5-1-2-1",
                                                label:"5.1.2.1目录"
                                            },
                                        ]
                                    }
                                ]
                            },
                            {
                                id:"5-2",
                                label:"5.2目录",
                                show:false
                            }
                        ]
                    },
                ]
        }
    }
}
</script>

子组件 recursive.vue

<template>
 <ul>
     <li  v-for='ele in list' :key='ele.id'>
        <span>{{ele.id}}</span>
        <!-- 有条件判断,不会无限循环,:list接收 调用组件别人传入的值 -->
        <side-item :list='ele.children' v-if="hasChildren(ele.children)"></side-item>
     </li>
 </ul>
</template>
<script>
export default {
    name:'SideItem',
    props:{
        list:{
             type:Array,
             required: true
        }
    },
    methods: {
        hasChildren(children){
            for(var i in children){
                if(  children[i]  ){
                    if(children[i].show!='undefined'){
                       return true
                    }else{
                      return children[i].show
                    }
                }
            }
            return false;
        }
    }
}
</script>

相关文章

  • 树形结构递归/原生js实现/vue递归组件

    原生js实现递归渲染 Vue2.0递归组件

  • vue 局部组件递归

    vue只有全局注册的组件才能递归调用吗? 最近在开发 npm 组件库,需要递归使用组件,组件间存在相互依赖关系。搜...

  • Vue menu 递归组件

    分享一个用递归的方式写 menu 组件 vue 利用递归组件写导航 为什么要用递归的方式写 ? 原因可以有几点: ...

  • 父子组件通信

    vue之父子组件间通信实例讲解(props、emit) Vue.js 递归组件实现树形菜单(实例分享)

  • vue递归组件

    今天在阅读vue文档的时候,发现还有一个递归组件,平时没有注意到。递归组件就是在自己组件的模板中调用自己,此时组件...

  • vue递归组件

    1.效果图 2.布局 模板: 实例以及函数方法:

  • vue 递归组件

    递归组件的定义 每个组件都有一个name属性。当你注册全局组件的时候这个全局的ID会设置成这个组件的name属性 ...

  • vue递归组件

    用vue写后台管理系统侧边栏时,用到了递归组件的问题,有的侧边栏导航可能有多个下级分类,结合element来写的一...

  • Vue组件递归

    写在前面有时候我们需要树状菜单,比如通讯录的分组列表。在这时候数据是树状存储的,给前端的数据需要进行递归读取。这时...

  • vue 递归组件

    vue 递归组件 前言 对于一些有规律的 dom 结构,我们可以通过递归方式来生成这个结构,,那么在 vue 的模...

网友评论

      本文标题:vue递归组件

      本文链接:https://www.haomeiwen.com/subject/rwkdoftx.html