zoukankan      html  css  js  c++  java
  • vue、element-ui 依权限动态导航 v-for、v-if

    在管理后台需要按用户权限展示不同导航菜单时,我们需要从后端请求数据来进行菜单渲染。

    但由于v-for与v-if不能在同一标签内使用(存在性能问题:v-for 具有比 v-if 更高的优先级,意味着 v-if 将分别重复运行于每个 v-for 循环中),所以我们需要将其分别放在不同标签内,v-for放在父级,v-if放在子级。

    同时,由于使用实体实体标签作为v-for载体,将会影响el-menu的list结构,因此,我们将v-for放在template标签中。

    代码如下(以三级菜单为例):

    html

      <el-menu>
          <div class="side-bar-title">后台管理</div>
          <template v-for="menu_0 in menuData">
            <el-submenu v-if="menu_0.childMenu" :index="menu_0.id" :key="menu_0.id">
              <template slot="title">{{menu_0.name}}</template>
              <template v-for="menu_1 in menu_0.childMenu">
                <el-submenu v-if="menu_1.childMenu" :index="menu_1.id" :key="menu_1.id">
                  <template slot="title">{{menu_1.name}}</template>
                  <template v-for="menu_2 in menu_1.childMenu">
                    <el-menu-item :index="menu_2.url" :key="menu_2.id">{{menu_2.name}}</el-menu-item>
                  </template>
                </el-submenu>
                <el-menu-item v-else :index="menu_1.url" :key="menu_1.id">{{menu_1.name}}</el-menu-item>
              </template>
            </el-submenu>
            <el-menu-item v-else :index="menu_0.url" :key="menu_0.id">{{menu_0.name}}</el-menu-item>
          </template>
       </el-menu>

    js

    export default {
      data () {
        return {
          menuData: [
          {
    name:
    "一级导航-1",      id: "1", parentId: 0,      url: "comment1", childMenu:[ {        id: "3",        name: "二级导航",        parentId: 1,        url: "comment3",        childMenu:[         {          id: "4",          name: "三级导航",          parentId: 3,          url: "comment4"         }]       }],
         },{       id:
    "2"       name: "一级导航-2"       parentId: 0       url: "comment2"      }]    } } }
  • 相关阅读:
    发布一个扩展Repeater的模板控件,带自动分页功能
    webservice 测试窗体只能用于来自本地计算机的请求
    FCKeditor编辑器中设置默认文本行高和字体大小
    程序员的个人性格
    程序设计模式的有趣解释-追MM
    集锦一
    UML简介(原创)
    一位IT从业人员的心路历程
    一个初级测试工程师的工作总结
    "与熊共舞"(转载)
  • 原文地址:https://www.cnblogs.com/tdxl/p/14374278.html
Copyright © 2011-2022 走看看