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

介紹

這是一個是基於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

(完)後端

相關文章
相關標籤/搜索