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(垂直) | String | vertical |
theme | 主题,可选值为 light、dark、primary,其中 primary 只适用于 mode="horizontal" | String | light |
active-name | 激活菜单的 name 值 | String | Number | - |
open-names | 展开的 Submenu 的 name 集合 | Array | [] |
accordion | 是否开启手风琴模式,开启后每次至多展开一个子菜单 | Boolean | false |
width | 导航菜单的宽度,只在 mode="vertical" 时有效,如果使用 Col 等布局,建议设置为 auto | String | 240px |
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 添加新记录 | Boolean | false |
target | 相当于 a 链接的 target 属性 | String | _self |
Submenu props
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
name | 子菜单的唯一标识,必填 | String | Number | - |
Submenu slot
名称 | 说明 |
---|---|
无 | 菜单项 |
title | 子菜单标题 |
MenuGroup props
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
title | 分组标题 | String | 空 |