iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >AntDesign Vue中Menu菜单怎么用
  • 450
分享到

AntDesign Vue中Menu菜单怎么用

2023-06-22 03:06:30 450人浏览 薄情痞子
摘要

这篇文章将为大家详细讲解有关AntDesign Vue中Menu菜单怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。常用属性属性说明默认值mode菜单类型,现在支持垂直、水平、和内嵌模式三种verti

这篇文章将为大家详细讲解有关AntDesign Vue中Menu菜单怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

常用属性

属性说明默认值
mode菜单类型,现在支持垂直、水平、和内嵌模式三种vertical
inlineCollapsedinline 时菜单是否收起状态
theme主题颜色(light/dark)light
openKeys(.sync)当前展开的 SubMenu 菜单项 key 数组
defaultOpenKeys初始展开的 SubMenu 菜单项 key 数组
selectedKeys(v-model)当前选中的菜单项 key 数组
defaultSelectedKeys初始选中的菜单项 key 数组

说明
defaultSelectedKeys 是默认选中的keya-menu-item上绑定的key),被选中会有高亮的显示效果;selectedKeys 也是一样的作用,不要同时使用,区别在于如果只希望指定一个初始化的菜单选项就使用defaultSelectedKeys,如果需要通过自己修改数据来选中菜单的选中项就使用selectedKeys

openKeysdefaultOpenKeys也是同理)

常用事件

openChangeMenu的事件,SubMenu 展开/关闭的回调

递归嵌套多级菜单

若只有两级菜单则直接使用v-forv-if指令即可完成;若菜单级数≥3则需要使用函数式组件。具体原因官网已经做了说明:

Before v2.0, 因组件内部会动态更改a-sub-menu的属性,如果拆分成单文件,无法将属性挂载到a-sub-menu上,你需要自行声明属性并挂载。为了方便,避免属性的声明,我们推荐使用函数式组件。

代码
App.vue (测试就随便在App.vue里写了)

<template>    <div id="app">        <div style="width: 256px">            <a-button type="primary" style="margin-bottom: 16px" @click="toggleCollapsed">            <a-icon :type="collapsed ? 'menu-unfold' : 'menu-fold'" />            </a-button>            <a-menu                :defaultSelectedKeys="[$route.path]"                :openKeys="openKeys"                mode="inline"                theme="dark"                :inline-collapsed="collapsed"                @openChange="onOpenChange"                @click="menuClick"            >                <template v-for="item in list">                    <a-menu-item v-if="!item.children" :key="item.path">                        <a-icon type="pie-chart" />                        <span>{{ item.title }}</span>                    </a-menu-item>                    <sub-menu v-else :key="item.path" :menu-info="item" />                </template>            </a-menu>        </div>        <router-view/>    </div></template><script>import { Menu } from 'ant-design-vue';const SubMenu = {  template: `      <a-sub-menu :key="menuInfo.key" v-bind="$props" v-on="$listeners">        <span slot="title">          <a-icon type="mail" /><span>{{ menuInfo.title }}</span>        </span>        <template v-for="item in menuInfo.children">          <a-menu-item v-if="!item.children" :key="item.path">            <a-icon type="pie-chart" />            <span>{{ item.title }}</span>          </a-menu-item>          <sub-menu v-else :key="item.path" :menu-info="item" />        </template>      </a-sub-menu>    `,  name: 'SubMenu',  // must add isSubMenu: true 此项必须被定义  isSubMenu: true,  props: {    // 解构a-sub-menu的属性,也就是文章开头提到的为什么使用函数式组件    ...Menu.SubMenu.props,    // Cannot overlap with properties within Menu.SubMenu.props    menuInfo: {      type: Object,      default: () => ({}),    },  },};export default {    name: "App",    components: {        'sub-menu': SubMenu,    },    data() {        return {            collapsed: false,            openKeys: [],            rootSubmenuKeys: ['/user'],            list: [                {                    key: '1',                    title: '信息管理',                    path: '/info',                },                {                    key: '2',                    title: '用户管理',                    path: '/user',                    children: [                        {                             key: '2.1',                            title: '后台用户',                            path: '/adminUser',                            children: [                                {                                     key: '2.1.1',                                    title: '新增用户',                                    path: '/addAdminUser',                                    children: [                                        {                                            key: '2.1.1。1',                                            title: '用户xx',                                            path: '/addAdminUserXX',                                        }                                    ]                                }                            ]                        },                        {                             key: '2.2',                            title: '前台用户',                            path: '/frontUser',                        }                    ]                }            ],        };    },    created(){        const openKeys = window.sessionStorage.getItem('openKeys')        if(openKeys){            this.openKeys = JSON.parse(openKeys)        }    },    methods: {        toggleCollapsed() {            this.collapsed = !this.collapsed;        },        onOpenChange(openKeys) {            // 将当前打开的父级菜单存入缓存中            window.sessionStorage.setItem('openKeys', jsON.stringify(openKeys))            //  控制只打开一个            const latestOpenKey = openKeys.find(key => this.openKeys.indexOf(key) === -1);            if (this.rootSubmenuKeys.indexOf(latestOpenKey) === -1) {                this.openKeys = openKeys;            } else {                this.openKeys = latestOpenKey ? [latestOpenKey] : [];            }        },        menuClick({key}) {            // 获取到当前的key,并且跳转            this.$router.push({                path: key            })        },    }};</script><style>#app {  font-family: Avenir, Helvetica, Arial, sans-serif;  -WEBkit-font-smoothing: antialiased;  -moz-osx-font-smoothing: grayscale;  padding: 50px;}</style>

这里省略了router配置,相信在座的各位也会!(不会的底下留言,包教包会!)

如果vue报编译错误You are using the runtime-only build of Vue,可以在vue的配置文件里加一行runtimeCompiler: true,重新运行即可。

如果点击同一个菜单报错了NavigationDuplicated: Avoided redundant navigation to current location,需要修改下Router设置(router/index.js):

const originalPush = Router.prototype.pushRouter.prototype.push = function push(location) {    return originalPush.call(this, location).catch(err => err)}

效果

AntDesign Vue中Menu菜单怎么用

自动渲染多级嵌套菜单;刷新会保存选中的菜单;点击菜单,收起其他展开的所有菜单。

关于“AntDesign Vue中Menu菜单怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: AntDesign Vue中Menu菜单怎么用

本文链接: https://www.lsjlt.com/news/302276.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • AntDesign Vue中Menu菜单怎么用
    这篇文章将为大家详细讲解有关AntDesign Vue中Menu菜单怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。常用属性属性说明默认值mode菜单类型,现在支持垂直、水平、和内嵌模式三种verti...
    99+
    2023-06-22
  • elementUI中MENU菜单踩坑
    需求:点击当前页面的按钮跳转到首页,给menu中绑定的default-active赋值 问题:页面已经跳转过去,可menu选中项根本没有发生变化 解决办法: 直接将当前页面的路由绑定...
    99+
    2024-04-02
  • elementUI中MENU菜单的坑怎么解决
    这篇文章主要介绍了elementUI中MENU菜单的坑怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇elementUI中MENU菜单的坑怎么解决文章都会有所收获,下面我们一起来看看吧。需求:点击当前页面...
    99+
    2023-06-29
  • jQuery UI菜单部件Menu Widget怎么使用
    这篇“jQuery UI菜单部件Menu Widget怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这...
    99+
    2023-06-30
  • Vue el-menu 左侧菜单导航功能的实现
    目录引言一级菜单实现最简单的一级菜单设置菜单背景颜色和文字颜色设置选中后菜单文字颜色在菜单中加入图标二级菜单实现二级菜单修改分析【其实很简单】:三级菜单实现三级菜单实现点击菜单跳转小...
    99+
    2024-04-02
  • 怎么使用el-menu递归实现多级菜单组件
    今天小编给大家分享一下怎么使用el-menu递归实现多级菜单组件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. 效果:2...
    99+
    2023-07-06
  • vue+el-menu实现菜单栏无限多层级分类
    本文实例为大家分享了vue+el-menu实现菜单栏无限多层级分类的具体代码,供大家参考,具体内容如下 思路:数据格式须为数组内部多层嵌套模式,利用递归渲染菜单栏数据实现菜单多层级分...
    99+
    2024-04-02
  • Android怎么制作一个app顶部menu菜单栏
    这篇文章将为大家详细讲解有关Android怎么制作一个app顶部menu菜单栏,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。菜单添加:<menu xmlns:android="...
    99+
    2023-05-31
    android menu
  • vue+el-menu如何实现菜单栏无限多层级分类
    这篇文章主要介绍了vue+el-menu如何实现菜单栏无限多层级分类,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下思路:数据格式须为数组内部多层嵌套模式,利用递归...
    99+
    2023-06-29
  • Vue中怎么递归多级菜单
    Vue中怎么递归多级菜单,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。考虑以下菜单数据:[  {  nam...
    99+
    2024-04-02
  • Vue中怎么使用DrawerLayout侧滑菜单组件
    Vue中怎么使用DrawerLayout侧滑菜单组件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。HTML结构页面结构很简单,一个抽屉,一个主...
    99+
    2024-04-02
  • Flutter3.7新增Menu菜单组件的使用教程分享
    目录菜单组件介绍MenuAnchor组件SubmenuButton 联级菜单按钮MenuItemButton 菜单按钮组件MenuBar 多菜单联级菜单头部Bar菜单样式 MenuS...
    99+
    2023-01-31
    Flutter Menu菜单组件 Flutter 菜单组件 Flutter 菜单
  • Vue3 Element-plus和el-menu无限级菜单组件怎么封装
    对于element中提供给我们的el-menu组件最多可以实现三层嵌套,如果多一层数据只能自己通过变量去加一层,如果加了两层、三层这种往往是行不通的,所以只能进行封装效果图 一、定义数据MenuData.tsexport default [...
    99+
    2023-05-14
    Vue3 Element-plus el-menu
  • vue menu不刷新怎么办
    本教程操作环境:Windows10系统、Vue 3版、Dell G3电脑。vue menu不刷新怎么办?vue 实现组件切换tab(菜单)页不刷新页面vue 实现组件切换tab(菜单)页不刷新页面(keep alive)<keep-a...
    99+
    2023-05-14
    刷新 menu Vue
  • vue中自定义右键菜单插件怎么用
    今天小编给大家分享一下vue中自定义右键菜单插件怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。演示用法通过npm安装插...
    99+
    2023-06-29
  • vue动态菜单怎么设置
    随着前端开发技术的不断发展,许多前端框架也一直在不断完善和发展,其中Vue框架以其简单易学、高效便捷的特性被越来越多的开发者所青睐。在Vue开发中,经常需要使用动态菜单,那么Vue动态菜单怎么设置呢?下面本文将为大家讲解一下Vue动态菜单的...
    99+
    2023-05-20
  • 如何在Android项目中动态修改ToolBar中的Menu菜单栏
    如何在Android项目中动态修改ToolBar中的Menu菜单栏?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Android动态修改ToolBar的Menu菜单实现很简单...
    99+
    2023-05-31
    toolbar android menu
  • 怎么使用SpringBoot+Vue实现动态菜单
    本篇内容介绍了“怎么使用SpringBoot+Vue实现动态菜单”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 整体思路效果图:最终菜单...
    99+
    2023-07-02
  • vue怎么实现右键菜单栏
    本篇内容主要讲解“vue怎么实现右键菜单栏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue怎么实现右键菜单栏”吧!vue实现右键菜单栏和原生js大同小异,都是需要明白两个点contextme...
    99+
    2023-06-29
  • vue怎么自定义右键菜单
    今天小编给大家分享一下vue怎么自定义右键菜单的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在需要添加右键的页面,绑定con...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作