這是一個是基於element-UI
的導航菜單組件基礎上,進行了二次封裝的菜單組件,該組件以組件遞歸的方式,實現了可根據從後端接收到的json
菜單數據,動態渲染多級菜單的功能。html
因爲該組件是基於element-UI
進行二次封裝的,因此在使用該組件時請務必安裝element-UI
(安裝方式猛戳這裏),安裝好element-UI
後,只需將該組件文件夾SideBar
導入到現有項目中便可使用。vue
組件封裝好以後,由父組件調用該組件,父組件先向後端發送請求獲取菜單數據,而後將菜單數據傳遞給封裝好的菜單組件,菜單組件經過解析數據,完成菜單渲染。git
<template> <div id="app"> <Sidebar :menuList="menuList"/> </div> </template> <script> import Sidebar from './SideBar/SideBar.vue' export default { name: 'app', components: { Sidebar}, data() { return { menuList, } } } </script> <style> </style>
屬性 | 描述 | 類型 | 是否必須 |
---|---|---|---|
menuList | 由後端返回的菜單數據 | Array | 是 |
{ "menuList" : [ { "path": "/func1", //菜單項所對應的路由路徑 "title": "功能1", //菜單項名稱 "children":[] //是否有子菜單,若沒有,則爲[] }, { "path": "/func2", "title": "功能2", "children":[] }, { "path": "/func3", "title": "功能3", "children": [ { "path": "/func31", "title": "功能3-1", "children":[] }, { "path": "/func32", "title": "功能3-2", "children":[] }, { "path": "/func33", "title": "功能3-3", "children":[] }, ] } ] }
關於如何將數據轉化成以上格式,請參考博文樹形多級菜單數據源嵌套結構與扁平結構互轉github
完整代碼請戳☞Vue-Components-Library/SideBarjson
(完)後端