菜单

下拉菜单项 AsamDropdownItem

在下拉菜单中定义一个命令、禁用项或分隔项。

使用场景 ​

在下拉菜单中定义一个命令、禁用项或分隔项。

组合菜单、图标与公开方法 ​

显式菜单容器与项目共同运行,支持鼠标和键盘选择。

组合菜单、图标与公开方法

展开源码

使用约定 ​

command 接受字符串、数字或对象,disabled 阻止选择,divided 添加分隔。icon 属性与 icon 插槽可显示 ASAM 图标,textValue 供键盘文本搜索。点击与指针事件见 API,业务选择由父 Dropdown 的 command 接收。没有独立 size prop。

组合职责与生命周期 ​

作为 AsamDropdownMenu 的子项消费菜单注入,不能脱离菜单单独承载下拉行为。command 为业务命令,disabled 不执行,divided 添加分隔;icon 属性或 icon 插槽承载图标,default 提供文字。点击和键盘选择最终由父 Dropdown 发出完整 command 事件。

API

属性 AsamDropdownItemProps

属性名说明类型默认值
command派发到command回调函数的指令参数string | number | object | undefined工厂函数(每个实例创建)
disabled是否禁用boolean | undefinedfalse
divided是否显示分隔符boolean | undefinedfalse
textValue—string | undefinedundefined
icon自定义图标string | Component | undefinedundefined

事件 AsamDropdownItemEmits

属性名说明类型默认值
pointermove—[event: PointerEvent]—
pointerleave—[event: PointerEvent]—
click—[event: PointerEvent | KeyboardEvent]—

插槽 AsamDropdownItemSlots

属性名说明类型默认值
default—(() => unknown) | undefined—
icon—(() => unknown) | undefined—

实例方法与状态 AsamDropdownItemExpose

属性名说明类型默认值
handleClick—(event: PointerEvent) => void—
handlePointerMove—(event: PointerEvent) => void—
handlePointerLeave—(event: PointerEvent) => void—
propsAndAttrs—(AsamDropdownItemExpose)["propsAndAttrs"]—
参数与事件补充说明

固定 2.14.7 公开参数;运行时默认值来自已安装组件。

参数与事件说明

command

必填:否;声明来源:ASAM 声明。

默认值与来源
工厂函数(每个实例创建)(实例工厂;已安装组件)
disabled

必填:否;声明来源:ASAM 声明。

disabled 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

枚举:false / true

默认值与来源
false(已安装运行时;已安装组件)
divided

必填:否;声明来源:ASAM 声明。

divided 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

枚举:false / true

默认值与来源
false(已安装运行时;已安装组件)
textValue

必填:否;声明来源:ASAM 声明。

默认值与来源
undefined(已安装运行时;已安装组件)
icon

必填:否;声明来源:ASAM 声明。

icon 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

事件参数:(props: any, ctx: Parameters<Extract<NonNullable<string | Component | undefined>, (...args: never[]) => unknown>>[1]): any

  • icon.__isFragment: undefined — 依赖声明
  • icon.__isTeleport: undefined — 依赖声明
  • icon.__isSuspense: undefined — 依赖声明
默认值与来源
undefined(已安装运行时;已安装组件)
AsamDropdownItemProps 公开类型视图
ts
import type { Component, Attrs } from 'vue';
import type { AsamDropdownItemProps } from '@asam-ui/ui';

type PublicMember<T, K extends PropertyKey> = T extends unknown ? K extends keyof T ? T[K] : never : never;

// AsamDropdownItemProps
type PublicContract = {
	"command"?: string | number | object | undefined;
	"disabled"?: boolean | undefined;
	"divided"?: boolean | undefined;
	"textValue"?: string | undefined;
	"icon"?: string | Component | undefined;
};

参数与事件说明

pointermove

必填:是;声明来源:ASAM 声明。

pointerleave

必填:是;声明来源:ASAM 声明。

click

必填:是;声明来源:ASAM 声明。

AsamDropdownItemEmits 公开类型视图
ts
import type { AsamDropdownItemEmits } from '@asam-ui/ui';

// AsamDropdownItemEmits
type PublicContract = {
	"pointermove": [event: PointerEvent];
	"pointerleave": [event: PointerEvent];
	"click": [event: PointerEvent | KeyboardEvent];
};

参数与事件说明

default

必填:否;声明来源:ASAM 声明。

default 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

事件参数:(): unknown

icon

必填:否;声明来源:ASAM 声明。

icon 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

事件参数:(): unknown

AsamDropdownItemSlots 公开类型视图
ts
import type { AsamDropdownItemSlots } from '@asam-ui/ui';

// AsamDropdownItemSlots
type PublicContract = {
	"default"?: (() => unknown) | undefined;
	"icon"?: (() => unknown) | undefined;
};

参数与事件说明

handleClick

必填:是;声明来源:上游声明。

handleClick 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

事件参数:(event: PointerEvent): void

handlePointerMove

必填:是;声明来源:上游声明。

handlePointerMove 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

事件参数:(event: PointerEvent): void

handlePointerLeave

必填:是;声明来源:上游声明。

handlePointerLeave 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

事件参数:(event: PointerEvent): void

propsAndAttrs

必填:是;声明来源:上游声明。

propsAndAttrs 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

  • propsAndAttrs.disabled: boolean — 上游声明

    枚举:false / true

  • propsAndAttrs.command: (NonNullable<(AsamDropdownItemExpose)["propsAndAttrs"]>)["command"] — 上游声明

    嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。

  • propsAndAttrs.divided: boolean — 上游声明

    枚举:false / true

  • propsAndAttrs.icon: (NonNullable<(AsamDropdownItemExpose)["propsAndAttrs"]>)["icon"] — 上游声明

    事件参数:(props: any, ctx: Parameters<Extract<NonNullable<(NonNullable<(AsamDropdownItemExpose)["propsAndAttrs"]>)["icon"]>, (...args: never[]) => unknown>>[1]): any

    • propsAndAttrs.icon.__isFragment: undefined — 依赖声明
    • propsAndAttrs.icon.__isTeleport: undefined — 依赖声明
    • propsAndAttrs.icon.__isSuspense: undefined — 依赖声明
  • propsAndAttrs.textValue: string | undefined — 上游声明
  • propsAndAttrs.onClick: ((...args: any[]) => any) | undefined — 上游声明

    事件参数:(...args: any[]): any

  • propsAndAttrs.onPointerleave: ((...args: any[]) => any) | undefined — 上游声明

    事件参数:(...args: any[]): any

  • propsAndAttrs.onPointermove: ((...args: any[]) => any) | undefined — 上游声明

    事件参数:(...args: any[]): any

AsamDropdownItemExpose 公开类型视图
ts
import type { Attrs } from 'vue';
import type { AsamDropdownItemExpose, AsamDropdownItemProps } from '@asam-ui/ui';

type PublicMember<T, K extends PropertyKey> = T extends unknown ? K extends keyof T ? T[K] : never : never;

// AsamDropdownItemExpose
type PublicContract = {
	"handleClick": (event: PointerEvent) => void;
	"handlePointerMove": (event: PointerEvent) => void;
	"handlePointerLeave": (event: PointerEvent) => void;
	"propsAndAttrs": (AsamDropdownItemExpose)["propsAndAttrs"];
};

搜索文档

Tab 选择结果 Enter 打开 Esc 关闭