vue遞歸實(shí)現(xiàn)三級(jí)菜單
本文實(shí)例為大家分享了vue遞歸實(shí)現(xiàn)三級(jí)菜單的具體代碼,供大家參考,具體內(nèi)容如下
父組件
<template> <div v-if='showLevelMenu'> <menu-item :menuDate='menuList'></menu-item> </div></template>
子組件
<template> <div> <div class='' v-for='(menu, index) in menuDate' :key='index'> // 每一個(gè)菜單項(xiàng) <div @click='menuSpread(menu)' :class='[{’menu-row-selected’: menu.selected && menu.children.length <= 0}]'><div class='menu-row-left'> <div :class='[{’menu-selected’: menu.selected && menu.children.length <= 0}]'></div> <i :class='[menu.menuIcon, {’color-icon’: showIconColor(menu)}]'></i></div><div class='menu-row-right'> <span :class='[{’font-16’: menu.level === ’0’}]'>{{menu.menuName}}</span> <i v-if='menu.children.length <= 0'></i> <i v-if='menu.children.length>0 && !menu.selected'></i> <i v-if='menu.children.length>0 && menu.selected'></i></div> </div> // 遞歸展示菜單 <menu-item v-show='menu.selected' v-if='menu.children.length>0' :menuDate='menu.children'></menu-item> </div> </div></template><script> export default { props: { menuDate: Array }, name: ’MenuItem’, methods: { menuSpread (menu) {if (menu.menuRouter) this.$router.push(menu.menuRouter);menu.selected = !menu.selected;this.recursion(this.menuDate, menu); }, recursion (all, temp) {all.forEach(item => { if (item.menuName !== temp.menuName) { item.selected = false; this.recursion(item.children, temp); }}); }, showIconColor (menu) {let show = false;if (menu.level === ’0’) { menu.children.forEach(item => { if (item.children.length <= 0 && item.selected) { show = true; } if (item.children.length > 0) { item.children.forEach(item => {if (item.selected) { show = true;} }); } });}return show; } } };</script>
效果圖
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 基于javaweb+jsp實(shí)現(xiàn)企業(yè)車輛管理系統(tǒng)2. ASP.Net MVC利用NPOI導(dǎo)入導(dǎo)出Excel的示例代碼3. 利用ajax+php實(shí)現(xiàn)商品價(jià)格計(jì)算4. jstl 字符串處理函數(shù)5. JSP動(dòng)態(tài)網(wǎng)頁(yè)開(kāi)發(fā)原理詳解6. XHTML 1.0:標(biāo)記新的開(kāi)端7. asp與php中定時(shí)生成頁(yè)面的思路與代碼8. 帶你了解CSS基礎(chǔ)知識(shí),樣式9. React中使用TS完成父組件調(diào)用子組件的操作方法10. React實(shí)現(xiàn)一個(gè)倒計(jì)時(shí)hook組件實(shí)戰(zhàn)示例
