Skip to content

Menu 菜单

赛博朋克风格的菜单组件,支持横向和纵向布局、多级菜单、不同主题。

基本用法

vue
<template>
  <cyber-menu v-model="activeMenu" :items="menuItems" />
</template>

<script setup>
import { ref } from 'vue'

const activeMenu = ref('home')

const menuItems = [
  { label: '首页', value: 'home' },
  { label: '产品', value: 'products' },
  { label: '关于我们', value: 'about' },
  { label: '联系我们', value: 'contact' }
]
</script>

横向菜单

vue
<template>
  <cyber-menu v-model="activeMenu" :items="menuItems" direction="horizontal" />
</template>

多级菜单

vue
<template>
  <cyber-menu v-model="activeMenu" :items="multiLevelMenu" />
</template>

<script setup>
import { ref } from 'vue'

const activeMenu = ref('')

const multiLevelMenu = [
  {
    label: '文件',
    value: 'file',
    children: [
      { label: '新建', value: 'new' },
      { label: '打开', value: 'open' },
      { label: '保存', value: 'save' }
    ]
  },
  {
    label: '编辑',
    value: 'edit',
    children: [
      { label: '撤销', value: 'undo' },
      { label: '重做', value: 'redo' },
      { label: '剪切', value: 'cut' },
      { label: '复制', value: 'copy' },
      { label: '粘贴', value: 'paste' }
    ]
  },
  {
    label: '视图',
    value: 'view',
    children: [
      { label: '放大', value: 'zoom-in' },
      { label: '缩小', value: 'zoom-out' }
    ]
  }
]
</script>

主题

支持四种赛博朋克主题:neonterminalmatrixhologram

vue
<template>
  <cyber-menu v-model="activeMenu" :items="menuItems" theme="neon" />
  <cyber-menu v-model="activeMenu" :items="menuItems" theme="terminal" />
  <cyber-menu v-model="activeMenu" :items="menuItems" theme="matrix" />
  <cyber-menu v-model="activeMenu" :items="menuItems" theme="hologram" />
</template>

禁用项

vue
<template>
  <cyber-menu v-model="activeMenu" :items="disabledMenu" />
</template>

<script setup>
const disabledMenu = [
  { label: '正常选项', value: 'normal' },
  { label: '禁用选项', value: 'disabled', disabled: true },
  { label: '另一个选项', value: 'another' }
]
</script>

属性

属性名说明类型可选值默认值
modelValue / v-model当前激活的菜单项string | number-''
items菜单项数据array-[]
direction菜单方向stringhorizontal / verticalvertical
theme主题样式stringneon / terminal / matrix / hologramneon
expandedValues展开的子菜单值array-[]

事件

事件名说明回调参数
update:modelValue激活菜单项变化(value)
change菜单项变化事件(value)
select选中菜单项事件(item)
update:expandedValues展开的菜单项变化(expandedValues)

菜单项数据结构

属性说明类型默认值
label菜单项文本string-
value菜单项值string | number-
icon图标类名string-
disabled是否禁用booleanfalse
children子菜单项MenuItem[]-

主题配色

主题主色调背景色
neon#00e6f6rgba(8,16,28,0.95)
terminal#47f26b#0a140a
matrix#00ff41#000000
hologram#ff00ffrgba(10,0,20,0.9)

Relcased under the Mit Lincense.