element-ui菜单导航的三种递归写法(一)

1.建一个侧边目录

<div class="whr-side-menu">
      <el-menu
       class="el-menu-vertical-demo"
     	:router="true"
      	:default-active="$route.path"
      	>
            <menutree :menu="somenu"></menutree>

      </el-menu>

</div>

2.新建一个组件menutree

//新建一个组件menutree,name:"menutree",这样就能自己调用自己(递归)
<template>
    <fragment>
        <template v-for="(item,index_0) in menu">

            <el-menu-item v-if="item.children.length==0" :key="index_0" 		  :index="item.route?item.route:''"
                          @click="addProcess(item)">
                <i :class="item.icon"></i>
                <span slot="title">{{item.menu_name}}</span>
            </el-menu-item>

            <el-submenu v-else :index="item.route" :key="index_0">
                <template slot="title">
                    <i :class="item.icon"></i>
                    <span slot="title">{{item.menu_name}}</span>
                </template>
                <menutree :menu="item.children"></menutree>
            </el-submenu>
        </template>

    </fragment>
</template>

1.首先安装一下vue-fragment这个插件。

2.在main.js里配置一下

import Fragment from 'vue-fragment'
Vue.use(Fragment.Plugin)

这样就可以用<fragment></fragment>的标签了。

大功告成了!

到此就搞定了,这样做的原因主要是template不能没发循环。

原文地址:https://www.cnblogs.com/chopin-1990/p/13602214.html