亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

詳解VUE Element-UI多級菜單動態渲染的組件

2019-11-19 11:42:11
字體:
來源:轉載
供稿:網友

以下是組件代碼:

<template> <div class="navMenu">   <label v-for="navMenu in navMenus">   <el-menu-item v-if="navMenu.childs==null&&navMenu.entity&&navMenu.entity.state==='ENABLE'"          :key="navMenu.entity.id" :data="navMenu" :index="navMenu.entity.name" :route="navMenu.entity.value"          disabled="">    <i :class="navMenu.entity.icon"></i>    <span slot="title">{{navMenu.entity.alias}}</span>   </el-menu-item>    <el-submenu v-if="navMenu.childs&&navMenu.entity&&navMenu.entity.state==='ENABLE'"         :key="navMenu.entity.id" :data="navMenu" :index="navMenu.entity.name">    <template slot="title">     <i :class="navMenu.entity.icon"></i>     <span> {{navMenu.entity.alias}}</span>    </template>    <NavMenu :navMenus="navMenu.childs"></NavMenu>   </el-submenu>  </label>  </div></template> <script> export default {  name: 'NavMenu',  props: ['navMenus'],  data() {   return {}  },  methods: {} }</script> <style scoped> </style>

外部調用也比較簡單

 <!--左側菜單組件-->   <el-menu    default-active="0"    class="el-menu-vertical-demo"    @select="menuSelected"    background-color="#F0F6F6"    text-color="#3C3F41"    active-text-color="black">    <NavMenu :navMenus="leftMenus"></NavMenu>   </el-menu>

最后看下效果:

值得一提的是,完成此菜單需要后端的配合,筆者這里后端給出的數據為:

{  "entity": null,  "childs": [    {      "entity": {        "id": 1,        "parentMenuId": 0,        "name": "systemManage",        "icon": "el-icon-message/r/n",        "alias": "系統管理",        "state": "ENABLE",        "sort": 0,        "value": null,        "type": "NONE",        "discription": "用于系統管理的菜單",        "createUserId": 1      },      "childs": [        {          "entity": {            "id": 3,            "parentMenuId": 1,            "name": "authManage",            "icon": "el-icon-loading",            "alias": "權限管理",            "state": "ENABLE",            "sort": 0,            "value": "/system/auth",            "type": "LINK",            "discription": "用于權限管理的菜單",            "createUserId": 1          },          "childs": null        },        {          "entity": {            "id": 4,            "parentMenuId": 1,            "name": "roleManage",            "icon": "el-icon-bell",            "alias": "角色管理",            "state": "ENABLE",            "sort": 1,            "value": "/system/role",            "type": "LINK",            "discription": "用于角色管理的菜單",            "createUserId": 1          },          "childs": null        },        {          "entity": {            "id": 2,            "parentMenuId": 1,            "name": "menuManage",            "icon": "el-icon-edit",            "alias": "菜單管理",            "state": "ENABLE",            "sort": 2,            "value": "/system/menu",            "type": "LINK",            "discription": "用于菜單管理的菜單",            "createUserId": 1          },          "childs": null        },        {          "entity": {            "id": 5,            "parentMenuId": 1,            "name": "groupManage",            "icon": "el-icon-mobile-phone/r/n",            "alias": "分組管理",            "state": "ENABLE",            "sort": 3,            "value": "/system/group",            "type": "LINK",            "discription": "用于分組管理的菜單",            "createUserId": 1          },          "childs": null        }      ]    },    {      "entity": {        "id": 6,        "parentMenuId": 0,        "name": "userManage",        "icon": "el-icon-news",        "alias": "用戶管理",        "state": "ENABLE",        "sort": 1,        "value": null,        "type": "NONE",        "discription": "用于用戶管理的菜單",        "createUserId": 1      },      "childs": [        {          "entity": {            "id": 7,            "parentMenuId": 6,            "name": "accountManage",            "icon": "el-icon-phone-outline/r/n",            "alias": "帳號管理",            "state": "ENABLE",            "sort": 0,            "value": "",            "type": "NONE",            "discription": "用于帳號管理的菜單",            "createUserId": 1          },          "childs": [            {              "entity": {                "id": 14,                "parentMenuId": 7,                "name": "emailManage",                "icon": "el-icon-sold-out/r/n",                "alias": "郵箱管理",                "state": "ENABLE",                "sort": 0,                "value": "/content/email",                "type": "LINK",                "discription": "用于郵箱管理的菜單",                "createUserId": 1              },              "childs": null            },            {              "entity": {                "id": 13,                "parentMenuId": 7,                "name": "passManage",                "icon": "el-icon-service/r/n",                "alias": "密碼管理",                "state": "ENABLE",                "sort": 1,                "value": "/content/pass",                "type": "LINK",                "discription": "用于密碼管理的菜單",                "createUserId": 1              },              "childs": null            }          ]        },        {          "entity": {            "id": 8,            "parentMenuId": 6,            "name": "integralManage",            "icon": "el-icon-picture",            "alias": "積分管理",            "state": "ENABLE",            "sort": 1,            "value": "/user/integral",            "type": "LINK",            "discription": "用于積分管理的菜單",            "createUserId": 1          },          "childs": null        }      ]    },    {      "entity": {        "id": 9,        "parentMenuId": 0,        "name": "contentManage",        "icon": "el-icon-rank",        "alias": "內容管理",        "state": "ENABLE",        "sort": 2,        "value": null,        "type": "NONE",        "discription": "用于內容管理的菜單",        "createUserId": 1      },      "childs": [        {          "entity": {            "id": 10,            "parentMenuId": 9,            "name": "classifyManage",            "icon": "el-icon-printer",            "alias": "分類管理",            "state": "ENABLE",            "sort": 0,            "value": "/content/classify",            "type": "LINK",            "discription": "用于分類管理的菜單",            "createUserId": 1          },          "childs": null        },        {          "entity": {            "id": 11,            "parentMenuId": 9,            "name": "articleManage",            "icon": "el-icon-star-on",            "alias": "文章管理",            "state": "ENABLE",            "sort": 1,            "value": "/content/article",            "type": "LINK",            "discription": "用于文章管理的菜單",            "createUserId": 1          },          "childs": null        },        {          "entity": {            "id": 12,            "parentMenuId": 9,            "name": "commentManage",            "icon": "el-icon-share",            "alias": "評論管理",            "state": "ENABLE",            "sort": 2,            "value": "/content/comment",            "type": "LINK",            "discription": "用于評論管理的菜單",            "createUserId": 1          },          "childs": null        }      ]    }  ]}

總結:當遇到多叉樹或無限層級問題時,vue的遞歸組件是個比較好的解決方案,可以較大的節約開發時間降低開發成本。

以上所述是小編給大家介紹的VUE Element-UI多級菜單動態渲染的組件詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美xxxx14xxxxx性爽| 国产亚洲人成a一在线v站| 亚洲国产欧美一区二区丝袜黑人| 91在线直播亚洲| 国产狼人综合免费视频| 久久久精品视频成人| 国产精品入口夜色视频大尺度| 亚洲精品短视频| 久久97精品久久久久久久不卡| 亚洲欧美日韩国产精品| 91精品在线国产| 中文字幕亚洲欧美日韩高清| 亚洲欧洲国产伦综合| 国模精品视频一区二区| 久久精品国产清自在天天线| 欧美大片va欧美在线播放| 青青草精品毛片| 日韩二区三区在线| 亚洲第一视频在线观看| 亚洲美女中文字幕| 亚洲性夜色噜噜噜7777| 欧美午夜www高清视频| 国产欧美一区二区三区视频| 久久亚洲欧美日韩精品专区| 91香蕉嫩草神马影院在线观看| 欧美视频免费在线| 中文字幕亚洲无线码在线一区| 国产97人人超碰caoprom| 欧美在线观看日本一区| 国产在线观看一区二区三区| 午夜欧美不卡精品aaaaa| 久久久久久国产| 97久久精品国产| 国产精品久久久久久久app| 日韩av免费一区| 久久精品一本久久99精品| 欧美日韩在线免费观看| 米奇精品一区二区三区在线观看| 自拍视频国产精品| 亚洲成人在线视频播放| 亚洲欧洲黄色网| 亚洲精品久久久一区二区三区| 国产精品成人国产乱一区| 国产成人精品在线观看| 欧美性色19p| 日韩美女激情视频| 日韩视频亚洲视频| 国产成人高清激情视频在线观看| 中文国产亚洲喷潮| 欧美老少配视频| 麻豆成人在线看| 久久露脸国产精品| 久久久久久久久久久成人| 日韩的一区二区| 97精品视频在线观看| 亚洲精品国产精品久久清纯直播| xxx欧美精品| 中文字幕欧美视频在线| 欧美最猛黑人xxxx黑人猛叫黄| 亚洲精品在线不卡| 91高清免费视频| 亚洲一区二区三区视频播放| 成人精品在线观看| 欧美有码在线观看视频| 国产日韩精品综合网站| 久久久伊人日本| 国产成人精品电影| 日本精品va在线观看| 在线观看国产精品日韩av| 欧美成人h版在线观看| 亚洲sss综合天堂久久| 国产日韩欧美一二三区| 91高清视频免费| 欧美一区二区三区免费观看| 45www国产精品网站| 精品国产一区二区三区四区在线观看| 久久久999国产精品| 久久久爽爽爽美女图片| 欧美午夜视频一区二区| 亚洲精品一区二区三区婷婷月| 亚洲精品国产精品乱码不99按摩| 精品久久久国产精品999| 成人国产精品色哟哟| 国产精品丝袜久久久久久高清| 国产亚洲精品高潮| 亚洲福利影片在线| 亚洲免费电影一区| 欧美色图在线视频| 成人激情电影一区二区| 亚洲va欧美va在线观看| 81精品国产乱码久久久久久| 亚洲综合中文字幕在线观看| 456国产精品| 欧美中文字幕视频在线观看| 国产成人一区二区三区电影| 97视频免费观看| 青青久久av北条麻妃黑人| 97国产精品视频人人做人人爱| 久久人91精品久久久久久不卡| 日韩视频在线免费| 亚洲国产精品人人爽夜夜爽| 欧美成人免费在线视频| 国产日韩精品入口| 亚洲综合中文字幕68页| 亚洲视频在线免费看| 亚洲成人黄色在线| 中文字幕少妇一区二区三区| 国产精品视频区| 日本精品久久中文字幕佐佐木| 欧美成人剧情片在线观看| 欧美一级片免费在线| 亚洲乱码av中文一区二区| 成人午夜高潮视频| 国产原创欧美精品| 色婷婷av一区二区三区在线观看| 中文一区二区视频| 久久免费视频这里只有精品| 91九色国产视频| 亚洲成人网久久久| 粉嫩老牛aⅴ一区二区三区| 91久久精品国产91久久性色| 久久精品99久久香蕉国产色戒| 欧洲成人午夜免费大片| 国产美女精品视频| 国产精品揄拍一区二区| 在线日韩中文字幕| 欧美日韩性视频| 欧美色播在线播放| 热re99久久精品国产66热| 影音先锋日韩有码| 57pao国产成人免费| 亚洲欧美一区二区三区久久| 亚洲国产精品高清久久久| 懂色av中文一区二区三区天美| 亚洲一区av在线播放| 91在线高清免费观看| 亚洲男人天天操| 国产91网红主播在线观看| 色黄久久久久久| 日本一区二区三区在线播放| 欧美日韩激情视频8区| 菠萝蜜影院一区二区免费| 欧美日韩国产丝袜美女| 国产精自产拍久久久久久| 国产成人精品免高潮费视频| 国产精品一区二区三区毛片淫片| 欧美精品做受xxx性少妇| 精品久久久久久亚洲国产300| 69视频在线播放| 国产日本欧美一区二区三区| 91麻豆桃色免费看| 亚洲国产欧美在线成人app| 日韩美女写真福利在线观看| 亚洲女人被黑人巨大进入al| 久久精品人人爽| 亚洲第一综合天堂另类专| 亚洲激情久久久| 中文字幕在线看视频国产欧美在线看完整| 蜜臀久久99精品久久久久久宅男| 久久99热这里只有精品国产| 欧美成人免费大片| 欧美怡春院一区二区三区| 欧美自拍大量在线观看| 欧美老肥婆性猛交视频|