Heim > Artikel > Web-Frontend > Die rekursive Komponente von Vue.js implementiert das Baummenü
In diesem Artikel wird hauptsächlich die Verwendung rekursiver Komponenten von Vue.js zur Implementierung eines grundlegenden Baummenüs vorgestellt. Es hat einen sehr guten Referenzwert, schauen wir es uns gemeinsam an
Ich habe mir kürzlich die rekursive Komponente von Vue.js angesehen und ein grundlegendes Baummenü implementiert.
Projektstruktur:
main.js Als Einstieg ist es ganz einfach:
import Vue from 'vue' Vue.config.debug = true import main from './components/main.vue' new Vue({ el: '#app', render: h => h(main) })
it Eine Komponente main.vue wird eingeführt:
<template> <p class="tree-menu"> <ul v-for="menuItem in theModel"> <my-tree :model="menuItem"></my-tree> </ul> </p> </template> <script> var myData = [ { 'id': '1', 'menuName': '基础管理', 'menuCode': '10', 'children': [ { 'menuName': '用户管理', 'menuCode': '11' }, { 'menuName': '角色管理', 'menuCode': '12', 'children': [ { 'menuName': '管理员', 'menuCode': '121' }, { 'menuName': 'CEO', 'menuCode': '122' }, { 'menuName': 'CFO', 'menuCode': '123' }, { 'menuName': 'COO', 'menuCode': '124' }, { 'menuName': '普通人', 'menuCode': '124' } ] }, { 'menuName': '权限管理', 'menuCode': '13' } ] }, { 'id': '2', 'menuName': '商品管理', 'menuCode': '' }, { 'id': '3', 'menuName': '订单管理', 'menuCode': '30', 'children': [ { 'menuName': '订单列表', 'menuCode': '31' }, { 'menuName': '退货列表', 'menuCode': '32', 'children': [] } ] }, { 'id': '4', 'menuName': '商家管理', 'menuCode': '', 'children': [] } ]; import myTree from './common/treeMenu.vue' export default { components: { myTree }, data() { return { theModel: myData } } } </script>
Diese Datei führt eine Baumkomponente treeMenu.vue ein:
<template> <li> <span @click="toggle"> <i v-if="isFolder" class="icon" :class="[open ? 'folder-open': 'folder']"></i> <i v-if="!isFolder" class="icon file-text"></i> {{ model.menuName }} </span> <ul v-show="open" v-if="isFolder"> <tree-menu v-for="item in model.children" :model="item"></tree-menu> </ul> </li> </template> <script> export default { name: 'treeMenu', props: ['model'], data() { return { open: false, isFolder: true } }, computed: { isFolder: function() { return this.model.children && this.model.children.length } }, methods: { toggle: function() { if (this.isFolder) { this.open = !this.open } } } } </script> <style> ul { list-style: none; } i.icon { display: inline-block; width: 15px; height: 15px; background-repeat: no-repeat; vertical-align: middle; } .icon.folder { background-image: url(/src/assets/folder.png); } .icon.folder-open { background-image: url(/src/assets/folder-open.png); } .icon.file-text { background-image: url(/src/assets/file-text.png); } .tree-menu li { line-height: 1.5; } </style>
So einfach ist das. Es gibt wirklich nichts, worüber man in diesem Artikel schreiben könnte. Lassen Sie uns ihn einfach festhalten.
Der Screenshot-Effekt ist wie folgt:
Das Obige ist der gesamte Inhalt dieses Artikels Verwandte Inhalte, achten Sie bitte auf die chinesische PHP-Website!
Verwandte Empfehlungen:
Analyse zur Trennung und Kombination von Vue-Admin und Backend (Flask)
Das obige ist der detaillierte Inhalt vonDie rekursive Komponente von Vue.js implementiert das Baummenü. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!