Skip to content

Mention 提及

用于在输入中提及某人或某事,常用于发布、聊天或评论功能。

基础使用

远程加载

自定义触发字符

自定义菜单渲染

API

Mention Props

属性名说明类型默认值
v-model:text输入框的文本值string -
v-model:html输入框的 html 值string -
auto-focus自动获得焦点booleanfalse
target-class-name提及在输入框中的类名string
options选项列表MentionOption[][]
prefix设置触发关键字string | string[]@
separator设置选中项前后分隔符string' '
placeholder输入框占位提示文字string-
disabled是否设置输入框为禁用状态booleanfalse
loading选择面板是否显示加载状态booleanfalse
theme选择弹窗主题风格,可选值为 darkTooltipThemelight
placement弹窗弹出位置TooltipPlacementbottom-start
transition弹窗动画名称string r-tooltip-zoom
teleport弹窗指定挂载的节点,等同于 Teleport 组件的 to 属性string / Elementbody
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-colorvar(--r-text-color)-
--r-mention-height82px-
--r-mention-padding-vertical5px-
--r-mention-line-height24px-
--r-mention-placeholder-text-colorvar(--r-text-color-3)-
--r-mention-disabled-text-colorvar(--r-text-color-3)-
--r-mention-hover-fillvar(--r-primary-color-light-9)-
--r-mention-hover-colorvar(--r-primary-color)-

Released under the MIT License.