vue js 实现 树形菜单

本文介绍如何使用Vue.js创建动态树形菜单组件,并通过模板和组件注册实现菜单项的循环显示。文章展示了如何利用Vue的条件渲染特性来区分不同类型的菜单节点,并通过Ajax获取后端数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

添加一个模板。
<
template id="menu-template"> <li v-if="model.nodes!=undefined"> <a href="#" class="menu-dropdown"> <i class="menu-icon ${child.icon!''}"></i> <span class="menu-text"> {{model.title}} </span> <i class="menu-expand"></i> </a> <ul class="submenu"> <item v-for="model in model.nodes" :model="model"></item> </ul> </li> <li v-else> <a href="javascript:void(0)" data-url=""><i class="menu-icon "
:class="model.icon"
></i> <!-- 图标 --> <span class="menu-text">{{model.title}}</span></a> </li> </template>
注册组件
Vue.component('item', { template: '#menu-template', props: { model: Object } })
$.post("http://127.0.0.1:88/admin/getFunctionJson.action", null, function(data) {
        var app = new Vue({
            el: "#app",
            data: data
        })
    })

 

使用:

<item  v-for="model in message" :model="model"></item>   message 为一个 数组

 

 

<!-- 树形菜单... -->
<template id="menu-template">
    <li v-if="model.nodeList!=undefined" class="treeview">
        <a href="#" class="menu-dropdown"> <i class="fa" :class="model.icon"></i>
            <span>
        {{model.title}}</span> <i class="fa fa-angle-left pull-right"></i></span>
        </a>
        <ul class="treeview-menu">
            <item v-for="model in model.nodeList" :key="model.id" :model="model"></item>
        </ul>
    </li>

    <li v-else>
        <a href="javascript:void(0)" data-url=""><i class="fa" :class="model.icon"></i>
            <!-- 图标  -->
            <span>{{model.title}}</span></a>
    </li>
</template>
<script>
    Vue.component('item', {
        template: '#menu-template',
        props: {
            model: Object
        }
    })
    var message = [];
    $.post("{$ctx}/admin/auth/getFuncTree", null, function (data) {
        var obj = {};
        obj.message = data;
        var app = new Vue({
            el: "#app",
            data: obj
        })
    })

 

转载于:https://www.cnblogs.com/whm-blog/p/7094588.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值