Skip to content

Mention 提及

用于在文本输入时触发提及(@)候选列表的组件,支持自定义触发字符、匹配模式和渲染模板。

组件特性

  • 🛠️ 多匹配模式:支持前缀匹配(prefix)、完全匹配(exact)和模糊匹配(fuzzy)。
  • ⌨️ 多触发字符:支持自定义单一或多个触发字符(如 @#)。
  • 🖱️ 高适应性:兼容普通输入框(Input)、文本域(Textarea)以及类富文本编辑器(ContentEditable)。
  • 🎨 自定义渲染:支持通过插槽自定义提及候选列表项的展现形式。

基础用法

最基础的提及展示,使用前缀匹配模式。

Example

模糊匹配与文本域

在文本域中使用模糊匹配,并设置最大高度。

Example

自定义触发字符与列表项

支持多触发字符(@# 等)以及自定义列表项的内容展示。

Example

ContentEditable 集成

contenteditable 元素中使用提及组件,这在富文本场景中非常常见。

Example

主题定制

结合 BrConfigProvider,可以全局覆盖组件默认样式,例如修改主题色和圆角,并配合 highlightClass 属性深度定制选中项的高亮样式。

Example

API 说明

BrMention

属性类型默认值说明
triggerstring | string[]'@'触发字符
optionsMentionOption[]-候选列表数据
matchMode'prefix' | 'exact' | 'fuzzy''prefix'匹配模式
position'auto' | 'top' | 'bottom' | 'left' | 'right''auto'候选列表弹出的方向
delaynumber0触发延迟时间(ms)
disabledbooleanfalse是否禁用
loadingbooleanfalse是否为加载中状态
maxHeightstring | number-候选列表最大高度
isolatedbooleanfalse是否开启样式隔离
showEmptybooleantrue是否展示空状态
highlightClassstring-选中的高亮样式定制类名

MentionOption 数据结构

属性类型默认值说明
labelstring-选项显示的文本内容
valuestring-选项的值
disabledbooleanfalse是否禁用该选项
descriptionstring-额外描述文本
avatarstring-选项的头像地址
[key: string]any-支持扩展自定义属性

事件 (Emits)

事件名参数说明
search(query: string, trigger: string)搜索文本变化时触发
select(option: MentionOption, trigger: string)选中候选列表项时触发
open-change(open: boolean)候选列表展开/收起时触发

插槽 (Slots)

BrMentionContent

插槽名参数说明
item{ option: MentionOption, active: boolean }自定义候选列表项渲染