This article example shares the specific code of Vue recursively implementing the three-level menu for your reference. The specific content is as follows Parent Component <template> <div class="menu-level-menu menu-level-menu-enter" v-if="showLevelMenu"> <menu-item class="menu-item" :menuDate="menuList"></menu-item> </div> </template> Subcomponents <template> <div> <div class="" v-for="(menu, index) in menuDate" :key="index"> // Each menu item <div class="menu-row" @click="menuSpread(menu)" :class="[{'menu-row-selected': menu.selected && menu.children.length <= 0}]"> <div class="menu-row-left"> <div class="menu-row-left-line" :class="[{'menu-selected': menu.selected && menu.children.length <= 0}]"></div> <i class="iconfont" :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 class="c" v-if="menu.children.length <= 0"></i> <i class="iconfont icon-liebiaoxiala" v-if="menu.children.length>0 && !menu.selected"></i> <i class="iconfont icon-liebiaoshouqi" v-if="menu.children.length>0 && menu.selected"></i> </div> </div> // Recursively display the menu <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> Rendering The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM. You may also be interested in:
|
<<: Docker deploys Laravel application to realize queue & task scheduling
>>: MySQL 5.7.21 Installer Installation Graphic Tutorial under Windows 10
Table of contents Container Hierarchy The process...
This article example shares the specific code of ...
Table of contents 1. Preparation 2. Define the gl...
Table of contents What happens if a piece of code...
MySQL 8.0: MVCC for Large Objects in InnoDB In th...
In MySQL, we often use order by for sorting and l...
Cluster Deployment Overview 172.22.12.20 172.22.1...
Table of contents Initialize MySQL Install MySQL ...
Table of contents 1. Example: this can directly g...
1. Let's look at a table creation statement f...
First, before posting! Thanks again to I Want to S...
Table of contents 1. Introduction 2. Configure My...
The specific code of JavaScript date effects is f...
When using MySQL, we often sort and query a field...
Table of contents Array deduplication 1 Double-la...