Menu 导航菜单

Menu 导航菜单

概述

为页面和功能提供导航的菜单列表,常用于网站顶部和左侧。

注意:非 template/render 模式下,需使用 i-menu

代码示例

<template> <Menu mode="horizontal" :theme="theme1" active-name="1"> <MenuItem name="1"> <Icon type="ios-paper" /> 内容管理 </MenuItem> <MenuItem name="2"> <Icon type="ios-people" /> 用户管理 </MenuItem> <Submenu name="3"> <template slot="title"> <Icon type="ios-stats" /> 统计分析 </template> <MenuGroup title="使用"> <MenuItem name="3-1">新增和启动</MenuItem> <MenuItem name="3-2">活跃分析</MenuItem> <MenuItem name="3-3">时段分析</MenuItem> </MenuGroup> <MenuGroup title="留存"> <MenuItem name="3-4">用户留存</MenuItem> <MenuItem name="3-5">流失用户</MenuItem> </MenuGroup> </Submenu> <MenuItem name="4"> <Icon type="ios-construct" /> 综合设置 </MenuItem> </Menu> <br> <p>Change theme</p> <RadioGroup v-model="theme1"> <Radio label="light"></Radio> <Radio label="dark"></Radio> <Radio label="primary"></Radio> </RadioGroup> </template> <script> export default { data () { return { theme1: 'light' } } } </script>

<Row> <Col span="8"> <Menu :theme="theme2"> <Submenu name="1"> <template slot="title"> <Icon type="ios-paper" /> 内容管理 </template> <MenuItem name="1-1">文章管</MenuItem> <MenuItem name="1-2">评论管</MenuItem> <MenuItem name="1-3">举报管</MenuItem> </Submenu> <Submenu name="2"> <template slot="title"> <Icon type="ios-people" /> 用户管理 </template> <MenuItem name="2-1">新增用</MenuItem> <MenuItem name="2-2">活跃用</MenuItem> </Submenu> <Submenu name="3"> <template slot="title"> <Icon type="ios-stats" /> 统计分析 </template> <MenuGroup title="使用"> <MenuItem name="3-1">新增和启动</MenuItem> <MenuItem name="3-2">活跃分析</MenuItem> <MenuItem name="3-3">时段分析</MenuItem> </MenuGroup> <MenuGroup title="留存"> <MenuItem name="3-4">用户留存</MenuItem> <MenuItem name="3-5">流失用户</MenuItem> </MenuGroup> </Submenu> </Menu> </Col> <Col span="8"> <Menu :theme="theme2" active-name="1-2" :open-names="['1']"> <Submenu name="1"> <template slot="title"> <Icon type="ios-paper" /> 内容管理 </template> <MenuItem name="1-1">文章管理</MenuItem> <MenuItem name="1-2">评论管理</MenuItem> <MenuItem name="1-3">举报管理</MenuItem> </Submenu> <Submenu name="2"> <template slot="title"> <Icon type="ios-people" /> 用户管理 </template> <MenuItem name="2-1">新增用户</MenuItem> <MenuItem name="2-2">活跃用户</MenuItem> </Submenu> <Submenu name="3"> <template slot="title"> <Icon type="ios-stats" /> 统计分析 </template> <MenuGroup title="使用"> <MenuItem name="3-1">新增和启动</MenuItem> <MenuItem name="3-2">活跃分析</MenuItem> <MenuItem name="3-3">时段分析</MenuItem> </MenuGroup> <MenuGroup title="留存"> <MenuItem name="3-4">用户留存</MenuItem> <MenuItem name="3-5">流失用户</MenuItem> </MenuGroup> </Submenu> </Menu> </Col> <Col span="8"> <Menu :theme="theme2" :open-names="['1']" accordion> <Submenu name="1"> <template slot="title"> <Icon type="ios-paper" /> 内容管理 </template> <MenuItem name="1-1">文章管理</MenuItem> <MenuItem name="1-2">评论管理</MenuItem> <MenuItem name="1-3">举报管理</MenuItem> </Submenu> <Submenu name="2"> <template slot="title"> <Icon type="ios-people" /> 用户管理 </template> <MenuItem name="2-1">新增用户</MenuItem> <MenuItem name="2-2">活跃用户</MenuItem> </Submenu> <Submenu name="3"> <template slot="title"> <Icon type="ios-stats" /> 统计分析 </template> <MenuGroup title="使用"> <MenuItem name="3-1">新增和启动</MenuItem> <MenuItem name="3-2">活跃分析</MenuItem> <MenuItem name="3-3">时段分析</MenuItem> </MenuGroup> <MenuGroup title="留存"> <MenuItem name="3-4">用户留存</MenuItem> <MenuItem name="3-5">流失用户</MenuItem> </MenuGroup> </Submenu> </Menu> </Col> </Row> <br> <p>Change theme</p> <RadioGroup v-model="theme2"> <Radio label="light"></Radio> <Radio label="dark"></Radio> </RadioGroup> </template> <script> export default { data () { return { theme2: 'light' } } } </script>

<template> <Menu active-name="1-2" :open-names="['1']"> <Submenu name="1"> <template slot="title"> <Icon type="ios-analytics" /> Navigation One </template> <MenuGroup title="Item 1"> <MenuItem name="1-1">Option 1</MenuItem> <MenuItem name="1-2">Option 2</MenuItem> </MenuGroup> <MenuGroup title="Item 2"> <MenuItem name="1-3">Option 3</MenuItem> <MenuItem name="1-4">Option 4</MenuItem> </MenuGroup> </Submenu> <Submenu name="2"> <template slot="title"> <Icon type="ios-filing" /> Navigation Two </template> <MenuItem name="2-1">Option 5</MenuItem> <MenuItem name="2-2">Option 6</MenuItem> <Submenu name="3"> <template slot="title">Submenu</template> <MenuItem name="3-1">Option 7</MenuItem> <MenuItem name="3-2">Option 8</MenuItem> </Submenu> </Submenu> <Submenu name="4"> <template slot="title"> <Icon type="ios-cog" /> Navigation Three </template> <MenuItem name="4-1">Option 9</MenuItem> <MenuItem name="4-2">Option 10</MenuItem> <MenuItem name="4-3">Option 11</MenuItem> <MenuItem name="4-4">Option 12</MenuItem> </Submenu> </Menu> </template> <script> export default { } </script>

<template> <Menu :theme="theme3" active-name="1"> <MenuGroup title="内容管理"> <MenuItem name="1"> <Icon type="md-document" /> 文章管理 </MenuItem> <MenuItem name="2"> <Icon type="md-chatbubbles" /> 评论管理 </MenuItem> </MenuGroup> <MenuGroup title="统计分析"> <MenuItem name="3"> <Icon type="md-heart" /> 用户留存 </MenuItem> <MenuItem name="4"> <Icon type="md-leaf" /> 流失用户 </MenuItem> </MenuGroup> </Menu> <br> <p>Change theme</p> <RadioGroup v-model="theme3"> <Radio label="light"></Radio> <Radio label="dark"></Radio> </RadioGroup> </template> <script> export default { data () { return { theme3: 'light' } } } </script>

Show Code

API

Menu props

属性说明类型默认值
mode菜单类型,可选值为 horizontal(水平) 和 vertical(垂直)Stringvertical
theme主题,可选值为 light、dark、primary,其中 primary 只适用于 mode="horizontal"Stringlight
active-name激活菜单的 name 值String | Number-
open-names展开的 Submenu 的 name 集合Array[]
accordion是否开启手风琴模式,开启后每次至多展开一个子菜单Booleanfalse
width导航菜单的宽度,只在 mode="vertical" 时有效,如果使用 Col 等布局,建议设置为 autoString240px

Menu events

事件名说明返回值
on-select选择菜单(MenuItem)时触发name
on-open-change当 展开/收起 子菜单时触发当前展开的 Submenu 的 name 值数组

Menu methods

方法名说明参数
updateOpened手动更新展开的子目录,注意要在 $nextTick 里调用
updateActiveName手动更新当前选择项,注意要在 $nextTick 里调用

MenuItem props

属性说明类型默认值
name菜单项的唯一标识,必填String | Number-
to跳转的链接,支持 vue-router 对象String | Object-
replace路由跳转时,开启 replace 将不会向 history 添加新记录Booleanfalse
target相当于 a 链接的 target 属性String_self

Submenu props

属性说明类型默认值
name子菜单的唯一标识,必填String | Number-

Submenu slot

名称说明
菜单项
title子菜单标题

MenuGroup props

属性说明类型默认值
title分组标题String