2.0.0
Skip to content

Bubble 对话气泡 ​

用于聊天的气泡组件。

使用import { Bubble } from 'ant-design-x-vue'

代码演示 ​

基本 ​

Ant Design X
Hello World Next line Tab indent
基本

基础用法。

加载中 ​

Loading state:
加载中

通过 loading 属性控制加载状态。

变体和形状 ​

filled - default
filled - round
filled - corner left
filled - corner right
outlined - default
outlined - round
outlined - corner left
outlined - corner right
shadow - default
shadow - round
shadow - corner left
shadow - corner right
borderless bubble
变体和形状

通过 variant 属性设置气泡的样式变体,通过 shape 属性设置气泡的形状。

头像和位置 ​

align left
align right
头像和位置

通过 avatar 设置自定义头像,通过 placement 设置位置,通过 extra 设置额外内容。

头部 ​

header
align left
header
align right
头部

通过 header 属性设置气泡的头部。

底部和位置 ​

footer
outer footer
footer
footer
outer footer and align right
footer
底部和位置

通过 footer 属性设置气泡的底部,通过 footerPlacement 控制底部的位置。

系统消息 ​

Hello, this is a system message
Hello, this is a system message
Hello, this is a system message
系统消息

使用 Bubble.System 组件展示系统消息。

分隔符 ​

message 1
message 2
message 3
message 4
message 5
分隔符

使用 Bubble.Divider 组件添加分隔符。

动画效果 ​

非流式数据 / Non-streaming data:
动画效果 / Animation effects:
保留公共前缀 / Preserve common prefix:
动画效果

通过 typing 属性配置动画效果,支持 fade-in 和 typing 两种效果。

可编辑 ​

editable bubble 1
editable bubble 2
可编辑

通过 editable 属性开启可编辑功能。

流式传输 ​

流式数据 / steaming data:
强制关闭流式标志 / Force close the streaming flag:
启用动画 / Enable animation:
onTypingComplete 触发次数 / trigger times: 0
流式传输

通过 streaming 属性标识流式传输状态,配合动画效果使用。

自定义渲染内容 ​

Preview
Ant Design X
自定义渲染内容

通过 contentRender 自定义渲染内容。

渲染 Markdown 内容 ​

Render as markdown content to show rich text!

Link: Ant Design X

渲染 Markdown 内容

配合 Markdown 渲染实现富文本内容。

GPT 可视化 ​

在 contentRender 里用 @antv/gpt-vis 渲染模型输出的图表。vis 代码块在浏览器里交给 new GPTVis({ container }).render(),组件卸载时调用 destroy(),服务端渲染不会创建画布。

GPT-Vis, Components for GPTs, generative AI, and LLM projects. Not only UI Components. more...

Here's a visualization of Haidilao's food delivery revenue from 2013 to 2022. You can see a steady increase over the years, with notable growth particularly in recent years.

用 @antv/gpt-vis 在气泡里画出海底捞外卖营收折线。Re-Render 会重新流式输出。

气泡列表 ​

启用 autoScroll / enabled autoScroll
定位到新气泡 / locate to new bubble
气泡列表

预设样式的气泡列表,支持 System 和 Divider 类型。

列表扩展功能 ​

Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content.
Mock user content.
Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content.
Mock user content.
Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content.
Mock user content.
Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content.
Mock user content.
Custom loading...
列表扩展功能

列表支持 status、extraInfo 等扩展功能。

语义化自定义 ​

Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content. Mock welcome content.
Mock user content.
Custom loading...
语义化自定义

自定义 role 配置,包括自定义 loadingRender。

列表滚动控制 ​

列表滚动控制

使用 scrollTo 方法控制列表滚动。

API ​

Bubble ​

属性说明类型默认值版本
avatar展示头像VNode | (content, info) => VNode-
classNames语义化结构 classRecord<SemanticDOM, string>-
content聊天内容ContentType-
contentRender自定义渲染内容(content: ContentType, info: Info) => VNode--
editable是否可编辑boolean | EditableBubbleOptionfalse-
extra额外内容VNode | (content, info) => VNode--
footer底部内容VNode | (content, info) => VNode-
footerPlacement底部位置outer-start | outer-end | inner-start | inner-endouter-start-
header头部内容VNode | (content, info) => VNode-
loading聊天内容加载状态booleanfalse
placement信息位置start | endstart
shape气泡形状default | round | cornerdefaultv2 新增 default
streaming是否流式传输booleanfalse-
styles语义化结构 styleRecord<SemanticDOM, CSSProperties>-
typing打字动画配置boolean | BubbleAnimationOption | Functionfalsev2 增强
variant气泡样式变体filled | borderless | outlined | shadowfilled
loadingRender自定义渲染加载态内容() => VNode-
messageRender自定义渲染内容(已废弃,请使用 contentRender)(content: ContentType) => VNode-
onTyping动画执行时回调(rendererContent: string, currentContent: string) => void--
onTypingComplete动画结束回调(content?: string) => void-
onEditConfirm编辑确认回调(content: string) => void--
onEditCancel编辑取消回调() => void--

BubbleAnimationOption ​

属性说明类型默认值
effect动画效果类型typing | fade-infade-in
step内容步进单位,数组格式为随机区间number | [number, number]6
interval动画触发间隔number100
keepPrefix重新开始动画时是否保留公共前缀booleantrue

EditableBubbleOption ​

属性说明类型默认值
editing是否处于编辑状态booleanfalse
okText确认按钮文本VNode | string确认
cancelText取消按钮文本VNode | string取消

Info ​

属性说明类型
key数据项唯一标识string | number
status消息状态local | loading | updating | success | error | abort
extraInfo额外信息AnyObject

Bubble.System ​

属性说明类型默认值
content系统消息内容ContentType-
variant气泡样式变体filled | borderless | outlined | shadowshadow
shape气泡形状default | round | corner-
styles语义化结构 styleRecord<SemanticDOM, CSSProperties>-
classNames语义化结构 classRecord<SemanticDOM, string>-

Bubble.Divider ​

属性说明类型默认值
content分隔符内容ContentType-
dividerProps分隔符属性DividerProps-
styles语义化结构 styleRecord<SemanticDOM, CSSProperties>-
classNames语义化结构 classRecord<SemanticDOM, string>-

Bubble.List ​

属性说明类型默认值
autoScroll自动滚动到最新位置booleantrue
items气泡数据列表BubbleItemType[]-
roles气泡默认属性配置,与 role 等价。同时传入时优先 rolesRoleType-
role与 React 2.0 Bubble.List 的 role 相同RoleType-
styles语义化结构 styleRecord<SemanticDOM, CSSProperties>-
classNames语义化结构 classRecord<SemanticDOM, string>-
onScroll滚动事件回调(e: Event) => void-

BubbleItemType ​

属性说明类型
key数据项唯一标识(必填)string | number
role角色类型ai | user | system | divider | string
status消息状态local | loading | updating | success | error | abort
extraInfo额外信息AnyObject
...BubbleProps继承 Bubble 的所有属性-

BubbleListRef ​

方法说明类型
nativeElement原生 DOM 元素HTMLDivElement
scrollBoxNativeElement滚动容器 DOMHTMLDivElement
scrollTo滚动到指定位置(options: ScrollToOptions) => void

ScrollToOptions ​

属性说明类型
key滚动到指定 key 的气泡string | number
top滚动位置number | bottom | top
offset滚动偏移量number
behavior滚动行为smooth | instant | auto
block滚动对齐方式start | center | end | nearest

Bubble Slots ​

插槽名说明类型
avatar头像-
header头部面板
footer底部内容
extra额外内容
loadingloading 占位-
content消息内容

Bubble.List Slots ​

插槽名说明类型
avatar头像
header头部面板
footer底部内容
extra额外内容
loadingloading 占位
content消息内容

Semantic DOM ​

Ant Design X Vue
Feel free to use Ant Design Vue !
  • root
    气泡根节点
  • body
    主体容器
  • avatar
    头像的外层容器
  • header
    头部的容器
  • content
    聊天内容的容器
  • footer
    底部的容器
  • extra
    气泡尾边栏容器
System message
  • root
    系统气泡根节点
  • body
    主体容器
  • content
    内容容器
  • root
    分隔符根节点
  • body
    主体容器
  • content
    内容容器
Welcome to Ant Design X Vue
hello, Ant Design X Vue
AI
Hello, nice to meet you!
  • root
    对话列表根节点
  • scroll
    对话列表滚动容器
  • bubble
    对话气泡容器
  • body
    对话气泡的主体容器
  • avatar
    对话气泡的头像外层容器
  • header
    对话气泡的头部容器
  • content
    对话气泡的聊天内容容器
  • footer
    对话气泡的底部容器
  • extra
    对话气泡的尾边栏容器
  • system
    系统气泡容器
  • divider
    分割线气泡容器

主题变量(Design Token) ​

Token说明类型默认值
typingContent打字动画内容string|
typingAnimationDuration打字动画持续时间string0.8s
typingAnimationName打字动画名称stringcursorBlink

贡献者 ​

贡献者

正在加载贡献者信息...