vue+element UI以組件遞歸方式實現多級導航菜單

介紹

這是一個是基於element-UI的導航菜單組件基礎上,進行了二次封裝的菜單組件,該組件以組件遞歸的方式,實現了可根據從後端接收到的json菜單數據,動態渲染多級菜單的功能。html

使用方法

因爲該組件是基於element-UI進行二次封裝的,因此在使用該組件時請務必安裝element-UI安裝方式猛戳這裏),安裝好element-UI後,只需將該組件文件夾SideBar導入到現有項目中便可使用。vue

工做流程

組件封裝好以後,由父組件調用該組件,父組件先向後端發送請求獲取菜單數據,而後將菜單數據傳遞給封裝好的菜單組件,菜單組件經過解析數據,完成菜單渲染。git

使用示例

 

 1 <template>
 2   <div id="app">
 3     <Sidebar :menuList="menuList"/>
 4   </div>
 5 </template>
 6  7 <script>
 8 import Sidebar from './SideBar/SideBar.vue'
 9 export default { 10  name: 'app', 11  components: { Sidebar}, 12  data() { 13     return { 14  menuList, 15  } 16  } 17 } 18 </script>

選項

屬性 描述 類型 是否必須
menuList 由後端返回的菜單數據 Array

菜單數據格式示例

 
 1 {  2  "menuList" : [  3  {  4  "path": "/func1", //菜單項所對應的路由路徑  5  "title": "功能1", //菜單項名稱  6  "children":[] //是否有子菜單,若沒有,則爲[]  7  },  8  {  9  "path": "/func2", 10  "title": "功能2", 11  "children":[] 12  }, 13  { 14  "path": "/func3", 15  "title": "功能3", 16  "children": [ 17  { 18  "path": "/func31", 19  "title": "功能3-1", 20  "children":[] 21  }, 22  { 23  "path": "/func32", 24  "title": "功能3-2", 25  "children":[] 26  }, 27  { 28  "path": "/func33", 29  "title": "功能3-3", 30  "children":[] 31  }, 32  ] 33  } 34  ] 35 }

 關於如何將數據轉化成以上格式,請參考博文樹形多級菜單數據源嵌套結構與扁平結構互轉github

 

 

效果圖

組件代碼

完整代碼請戳☞Vue-Components-Library/SideBarjson

(完)後端

相關文章
相關標籤/搜索