vue组件递归

2018-01-17  本文已影响137人  席坤

        管理系统中很多这样树形菜单显示的,这里要用到组件的递归来完成,这里我们来学习下vue关于组件递归的实现。

实现原理

       递归的原理无非就是自己调用自己,来实现无限循环,但是递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。否则会无限死循环,程序报错。

代码实现

子组件

父组件

数据类型

menuList: [

        {

          id: "2",

          resourceName: "微信公众号",

          resourceDes: "",

          resourceIco: "el-icon-success",

          resourceType: "2",

          parentId: "",

          appId: "2",

          resourceUrl: "",

          resourceAttr: ""

        },

        {

          id: "3",

          resourceName: "一级",

          resourceDes: "",

          resourceIco: "el-icon-warning",

          resourceType: "2",

          parentId: "",

          appId: "4aab7a01a8304b7f8f1906073169a30f",

          resourceUrl: "",

          resourceAttr: "",

          children: [

            {

              id: "4",

              resourceName: "二级",

              resourceDes: "",

              resourceIco: "el-icon-circle-plus",

              resourceType: "2",

              parentId: "3",

              appId: "4aab7a01a8304b7f8f1906073169a30f",

              resourceUrl: "/app/unitList",

              resourceAttr: "",

              children: [

                {

                  id: "4-1",

                  resourceName: "三级",

                  resourceDes: "",

                  resourceIco: "el-icon-circle-close",

                  resourceType: "2",

                  parentId: "4",

                  appId: "4aab7a01a8304b7f8f1906073169a30f",

                  resourceUrl: "/app/unitList",

                  resourceAttr: "",

                  children: [

                    {

                      id: "4-1-1",

                      resourceName: "四级",

                      resourceDes: "",

                      resourceIco: "el-icon-date",

                      resourceType: "2",

                      parentId: "4-1",

                      appId: "4aab7a01a8304b7f8f1906073169a30f",

                      resourceUrl: "/text",

                      resourceAttr: ""

                    }

                  ]

                }

              ]

            },

            {

              id: "5",

              resourceName: "部门管理",

              resourceDes: "",

              resourceIco: "el-icon-document",

              resourceType: "2",

              parentId: "3",

              appId: "4aab7a01a8304b7f8f1906073169a30f",

              resourceUrl: "/app/deptList",

              resourceAttr: ""

            },

            {

              id: "3-5",

              resourceName: "用户管理",

              resourceDes: "",

              resourceIco: "el-icon-edit",

              resourceType: "2",

              parentId: "3",

              appId: "4aab7a01a8304b7f8f1906073169a30f",

              resourceUrl: "/app/usersList",

              resourceAttr: ""

            },

            {

              id: "3-6",

              resourceName: "授权",

              resourceDes: "",

              resourceIco: "el-icon-location-outline",

              resourceType: "2",

              parentId: "3",

              appId: "4aab7a01a8304b7f8f1906073169a30f",

              resourceUrl: "",

              resourceAttr: ""

            }

          ]

        },

        {

          id: "6",

          resourceName: "应用管理",

          resourceDes: "",

          resourceIco: "el-icon-menu",

          resourceType: "2",

          parentId: "",

          appId: "4aab7a01a8304b7f8f1906073169a30f",

          resourceUrl: "/app/appManage",

          resourceAttr: ""

        },

        {

          id: "8",

          resourceName: "应用管理New",

          resourceDes: "",

          resourceIco: "el-icon-bell",

          resourceType: "2",

          parentId: "",

          appId: "4aab7a01a8304b7f8f1906073169a30f",

          resourceUrl: "/app/AppManagelication",

          resourceAttr: ""

        }

      ]

上一篇下一篇

猜你喜欢

热点阅读