vue組件遞歸

? ? ? ? 管理系統中很多這樣樹形菜單顯示的,這里要用到組件的遞歸來完成,這里我們來學習下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: ""

? ? ? ? }

? ? ? ]

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。