Mention 提及
用于在输入中提及某人或某事,常用于发布、聊天或评论功能。
基础使用
远程加载
自定义触发字符
自定义菜单渲染
API
Mention Props
| 属性名 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| v-model:text | 输入框的文本值 | string | - |
| v-model:html | 输入框的 html 值 | string | - |
| auto-focus | 自动获得焦点 | boolean | false |
| target-class-name | 提及在输入框中的类名 | string | — |
| options | 选项列表 | MentionOption[] | [] |
| prefix | 设置触发关键字 | string | string[] | @ |
| separator | 设置选中项前后分隔符 | string | ' ' |
| placeholder | 输入框占位提示文字 | string | - |
| disabled | 是否设置输入框为禁用状态 | boolean | false |
| loading | 选择面板是否显示加载状态 | boolean | false |
| theme | 选择弹窗主题风格,可选值为 dark | TooltipTheme | light |
| placement | 弹窗弹出位置 | TooltipPlacement | bottom-start |
| transition | 弹窗动画名称 | string | r-tooltip-zoom |
| teleport | 弹窗指定挂载的节点,等同于 Teleport 组件的 to 属性 | string / Element | body |
| popper-class | 自定义弹窗样式 | string / Array / object | - |
Mention Slots
| 名称 | 说明 | 参数 |
|---|---|---|
| default | 自定义插入输入框下的默认内容 | - |
| loading | 自定义选择面板加载状态 | - |
| item | 自定义菜单渲染内容 | { row: MentionOption, index: number } |
Mention Events
| 事件名 | 说明 | 回调参数 |
|---|---|---|
| keydown | 键盘按下事件的回调 | ()=>void |
| keyup | 键盘弹起事件的回调 | (startContainer, previousSibling)=>void |
| change | 输入框值发生更新时触发 | (value: string)=>void |
| search | 输入框搜索时触发 | (value: string)=>void |
| select | 输入框的选中时触发 | (row: MentionOption)=>void |
| paste | 在输入框中复制时触发 | (event)=>void |
Mention 方法
通过 ref 可以获取到 Mention 实例并调用实例方法,详见组件实例方法。
| 方法名 | 说明 | 参数 |
|---|---|---|
| focus | 聚焦 | () => void |
| blur | 失去光标 | () => void |
| onAddRange | 选中当前区域 | (event: MouseEvent) => void |
| insertContent | 光标处插入内容 | ( content: HTMLSpanElement | Array<HTMLSpanElement>, isPrefix?: boolean) => void |
MentionOption 数据结构
options 属性是一个由对象构成的数组,数组中的每个对象配置一列,对象可以包含以下值:
| 键名 | 说明 | 类型 |
|---|---|---|
| class | 选项的自定义类名 | string |
| disabled | 选项是否禁用 | boolean |
| label | 选项的标签 | string |
| style | 选项的样式 | string | CSSProperties |
| value | 在选项中应该是唯一的 | string |
类型定义
组件导出以下类型定义:
ts
import type { MentionOption, MentionProps } from 'ryxon'主题定制
样式变量
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件。
| 名称 | 默认值 | 描述 |
|---|---|---|
| --r-mention-text-color | var(--r-text-color) | - |
| --r-mention-height | 82px | - |
| --r-mention-padding-vertical | 5px | - |
| --r-mention-line-height | 24px | - |
| --r-mention-placeholder-text-color | var(--r-text-color-3) | - |
| --r-mention-disabled-text-color | var(--r-text-color-3) | - |
| --r-mention-hover-fill | var(--r-primary-color-light-9) | - |
| --r-mention-hover-color | var(--r-primary-color) | - |
