zoukankan      html  css  js  c++  java
  • element-ui菜单导航的三种递归写法(三)

    使用渲染函数把树组件渲染出来。

    <script>
    import { mapMutations } from "vuex";
    import PubSub from "pubsub-js";
    export default {
    	name: "deepmenu",
    	props: ["menu"],
    
    	methods: {
    		...mapMutations("process", ["ADD_PROCESS"]),
    		toView(e) {
    			if (e != this.$route.path) {
    				this.$router.push(e);
    				// PubSub.publish("addProcess", e);
    			}
    		},
    	},
    
    	render() {
    		const fn = (list) => {
    			return list.map((e) => {
    				let html = null;
    
    				if (e.children.length > 0) {
    					html = (
    						<el-submenu index={String(e.id)} key={e.id}>
    							<template slot="title">
    								<i class={e.icon}></i>
    								<span slot="title">{e.menu_name}</span>
    							</template>
    							{fn(e.children)}
    						</el-submenu>
    					);
    				} else {
    					html = (
    						<el-menu-item index={e.route} key={e.route}>
    							<i class={e.icon}></i>
    							<span slot="title">{e.menu_name}</span>
    						</el-menu-item>
    					);
    				}
    
    				return html;
    			});
    		};
    
    		let el = fn(this.menu);
    
    		return (
    			<el-menu default-active={this.$route.path} on-select={this.toView}>
    				{el}
    			</el-menu>
    		);
    	},
    };
    </script>
    
  • 相关阅读:
    DS博客作业04--图
    DS博客作业03--树
    DS博客作业02--栈和队列
    DS博客作业01--线性表
    C博客作业05--指针
    C语言博客作业04--数组
    C博客作业03--函数
    博客作业——循环结构
    C博客作业05-指针
    C博客作业04--数组
  • 原文地址:https://www.cnblogs.com/chopin-1990/p/13664979.html
Copyright © 2011-2022 走看看