Menu 菜单
基本用法
查看示例
vue
<script setup lang="ts">
import type { MenuOption } from 'yy-craft'
const basicMenuOptions: MenuOption[] = [
{
label: '曾姐老火锅',
key: '曾姐老火锅',
},
{
label: '南瓜土豆汤',
key: '南瓜土豆汤',
},
]
</script>
<template>
<yy-menu :options="basicMenuOptions" />
</template>
查看示例
vue
<script setup lang="ts">
import type { MenuOption } from 'yy-craft'
import { AlarmOutline } from '@vicons/ionicons5'
import { h } from 'vue'
const basicMenuOptions: MenuOption[] = [
{
label: '曾姐老火锅',
key: '曾姐老火锅',
},
{
label: '南湖春天冒菜',
key: '南湖春天冒菜',
},
{
label: '剁椒鱼头',
key: '剁椒鱼头',
children: [
{
label: '大餐',
key: '大餐',
type: 'group',
children: [
{
label: '炒腊肉',
key: '炒腊肉',
},
{
label: '可乐鸡翅',
key: '可乐鸡翅',
},
],
},
],
},
{
label: '南湖春天串串',
key: '南湖春天串串',
},
{
label: '南瓜土豆汤',
key: '南瓜土豆汤',
icon: () => h(AlarmOutline),
},
]
</script>
<template>
<yy-menu :options="basicMenuOptions" />
</template>
默认展开
查看示例
vue
<script setup lang="ts">
import type { MenuOption } from 'yy-craft'
import { AlarmOutline } from '@vicons/ionicons5'
import { h } from 'vue'
const basicMenuOptions: MenuOption[] = [
{
label: '曾姐老火锅',
key: '曾姐老火锅',
},
{
label: '南湖春天冒菜',
key: '南湖春天冒菜',
},
{
label: '剁椒鱼头',
key: '剁椒鱼头',
children: [
{
label: '大餐',
key: '大餐',
type: 'group',
children: [
{
label: '炒腊肉',
key: '炒腊肉',
},
{
label: '可乐鸡翅',
key: '可乐鸡翅',
},
],
},
],
},
{
label: '南湖春天串串',
key: '南湖春天串串',
},
{
label: '南瓜土豆汤',
key: '南瓜土豆汤',
icon: () => h(AlarmOutline),
},
]
</script>
<template>
<yy-menu :options="basicMenuOptions" :default-expanded-keys="['剁椒鱼头']" />
</template>
默认选中
查看示例
vue
<script setup lang="ts">
import type { MenuOption } from 'yy-craft'
import { AlarmOutline } from '@vicons/ionicons5'
import { h, reactive } from 'vue'
const basicMenuOptions: MenuOption[] = [
{
label: '曾姐老火锅',
key: '曾姐老火锅',
},
{
label: '南湖春天冒菜',
key: '南湖春天冒菜',
},
{
label: '剁椒鱼头',
key: '剁椒鱼头',
children: [
{
label: '大餐',
key: '大餐',
type: 'group',
children: [
{
label: '炒腊肉',
key: '炒腊肉',
},
{
label: '可乐鸡翅',
key: '可乐鸡翅',
},
],
},
],
},
{
label: '南湖春天串串',
key: '南湖春天串串',
},
{
label: '南瓜土豆汤',
key: '南瓜土豆汤',
icon: () => h(AlarmOutline),
},
]
const selectedKeys = reactive(['炒腊肉'])
</script>
<template>
<yy-menu v-model:selected-keys="selectedKeys" :options="basicMenuOptions" />
</template>
收起状态
查看示例
vue
<script setup lang="ts">
import type { MenuOption } from 'yy-craft'
import { AlarmOutline } from '@vicons/ionicons5'
import { h, ref } from 'vue'
const basicMenuOptions: MenuOption[] = [
{
label: '曾姐老火锅',
key: '曾姐老火锅',
},
{
label: '南湖春天冒菜',
key: '南湖春天冒菜',
},
{
label: '剁椒鱼头',
key: '剁椒鱼头',
children: [
{
label: '大餐',
key: '大餐',
type: 'group',
children: [
{
label: '炒腊肉',
key: '炒腊肉',
},
{
label: '可乐鸡翅',
key: '可乐鸡翅',
},
],
},
],
},
{
label: '南湖春天串串',
key: '南湖春天串串',
},
{
label: '南瓜土豆汤',
key: '南瓜土豆汤',
icon: () => h(AlarmOutline),
},
]
const menuCollapsed = ref(false)
</script>
<template>
<yy-button @click="menuCollapsed = !menuCollapsed">
{{ menuCollapsed ? "展开" : "收起" }}
</yy-button>
<yy-menu
:options="basicMenuOptions"
:collapsed="menuCollapsed"
collapsed-width="50"
/>
</template>
Props
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
options | 菜单选项 | MenuOption[] | [] |
defaultExpandedKeys | 默认展开的key | Array<string | number | symbol> | [] |
selectedKeys | 选中的key值 | Array<string | number | symbol> | [] |
collapsed | 是否收起 | boolean | - |
collapsedWidth | 收起后宽度 | number | string | - |
Emits
事件名 | 说明 | 回调参数 |
---|---|---|
expanded | 菜单展开后触发 | - |
collapsed | 菜单收起后触发 | - |
item-click | 菜单项被点击时触发 | MenuItem |