TinyRobot SuggestionPills紧凑型建议按钮组组件新版功能特性解析
TinyRobot的SuggestionPills组件为AI对话界面提供紧凑的胶囊按钮建议选项,支持横向排列、溢出时展开或滚动模式,可自定义文本与图标,具备自动滚动、点击外部收起及与下拉菜单组合使用的能力。
TinyRobot SuggestionPills:紧凑的建议按钮组组件
在 AI 对话界面中,用户常常需要在入口处快速选取预设的操作或提问方向。传统的下拉菜单或长列表虽然能容纳大量选项,但交互路径长,不够直观。而采用 Pill 风格的建议按钮,则提供了一种更紧凑、更直观的方案——将建议项以胶囊按钮的形式排列展示,用户一目了然,点击即达。

SuggestionPills 正是 TinyRobot 为这一场景提供的组件,它具备以下核心能力:
- 紧凑排列:多个建议项以胶囊按钮横向排列,节省纵向空间。
- 溢出处理:当建议项超出容器宽度时,支持展开(expand)或横向滚动(scroll)两种模式。
- 展开/收起:通过
showAll控制是否展开全部项,并支持 hover 和 always 两种"更多"按钮显示时机。 - 自动滚动:支持鼠标悬停或点击时自动滚动到可见区域。
- 自定义按钮:每个药丸按钮可自定义文本和图标,还支持与 DropdownMenu 组合使用。
- 点击外部:提供
click-outside事件,方便实现点击组件外部收起等交互。
基本用法:带 items 的 SuggestionPills
最简单的用法是在 SuggestionPills 内直接放置多个 SuggestionPillButton,每个按钮对应一个建议项。
SuggestionPillItem 类型定义了每个按钮的数据结构,text 和 icon 至少需要提供一个:
type SuggestionPillItem =
| { text: string; icon?: VNode | Component }
| { text?: string; icon: VNode | Component }
showAll 切换:展开收起折叠项
当建议项较多时,SuggestionPills 默认只显示容器宽度范围内的项,超出的部分被折叠。通过 v-model:showAll 可以控制是否展开全部项。
showAllButtonOn 属性控制"更多"按钮的显示时机:
'hover'(默认):鼠标悬停在组件上时才显示"更多"按钮。'always':始终显示"更多"按钮。
overflowMode:展开 vs 滚动
overflowMode 决定了当建议项超出容器宽度时的展示方式,有两个选项:
'expand'(默认):超出的项折叠隐藏,通过showAll展开。'scroll':所有项横向排列,通过横向滚动查看。
expand 模式(默认)
scroll 模式
自定义药丸按钮:带图标
SuggestionPillButton 支持通过 icon 插槽或 item.icon 属性添加图标。下面演示使用 icon 插槽自定义图标:
也可以通过 item 属性直接传入图标组件,无需使用插槽:
autoScrollOn 行为
autoScrollOn 属性控制药丸按钮在溢出容器时是否自动滚动到可见区域,支持两种触发方式:
'mouseenter':鼠标悬停到按钮上时自动滚动。'click':点击按钮时自动滚动。
配合 DropdownMenu 实现更多选项
在实际场景中,药丸按钮点击后可能需要展示更多操作选项。这时可以将 TrSuggestionPillButton 作为 TrDropdownMenu 的触发器,实现"按钮点击 → 弹出下拉菜单"的交互。
{{ button.text }}
API 参考
SuggestionPillsProps
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
showAll | boolean | 否 | - | 是否展开全部元素,支持 v-model |
showAllButtonOn | 'hover' | 'always' | 否 | 'hover' | 显示"更多"按钮的时机 |
overflowMode | 'expand' | 'scroll' | 否 | 'expand' | 控制多余项的展示方式:expand 为展开显示,scroll 为横向滚动显示 |
autoScrollOn | 'mouseenter' | 'click' | 否 | - | 鼠标悬停或点击时是否自动滚动到可见区域 |
SuggestionPillButtonProps
| 属性 | 类型 | 必填 | 说明 |
|---|---|---|---|
item | SuggestionPillItem | 是 | 药丸项数据 |
Slots
SuggestionPills 插槽:
| 插槽名 | 说明 |
|---|---|
default | 自定义内容插槽 |
SuggestionPillButton 插槽:
| 插槽名 | 说明 |
|---|---|
default | 自定义内容插槽 |
icon | 自定义图标插槽 |
Events
| 事件名 | 参数 | 说明 |
|---|---|---|
click-outside | event: MouseEvent | 点击组件外部区域时触发 |
Types
type SuggestionPillItem =
| { text: string; icon?: VNode | Component }
| { text?: string; icon: VNode | Component }
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
如何用拖放在Flask看板应用中更新数据库状态
在Flask看板应用中,通过HTML5拖放API结合前端fetch异步POST请求,将拖拽任务的task_id和target_state发送至后端路由;后端接收JSON后更新数据库并提交事务,实现跨列拖拽时实时更新状态。需注意将事件绑定到容器而非子元素,并在ondragover中阻止默认行为以确保drop触发。
如何用CSS :has()选择器快速实现悬停span显示相邻div
利用CSS的:has()伪类选择器,通过` bar:has(> baz:hover)+ qux`实现悬停内联元素时显示相邻块级容器,解决了传统相邻兄弟选择器无法跨层级匹配的局限,可用于悬停图标显示详情框等交互场景。需注意浏览器兼容性和性能优化,避免过度使用影响渲染效率。
display:block居中段落文本的响应式实现方法
通过`display:block`与`max-width`限制宽度,配合`margin:auto`使段落块水平居中并实现响应式布局;同时用CSS统一控制段落间距,避免脱离文档流,提升可读性与维护性。
JavaScript代码去重:高效避免重复编写的技巧
将重复代码中的变化点提取为参数,利用ES6模板字符串动态生成选择器,可消除重复、保持一致性。注意参数安全性,必要时进行白名单校验;批量化场景可扩展为数组形式;现代框架中更推荐数据驱动或组件化封装替代手动选择器。
使用容器查询单位cqw实现表单输入框相对于祖父容器百分比宽度
利用CSS容器查询单位cqw,表单输入框宽度可直接基于祖父容器计算,绕过中间包装器尺寸干扰,实现简洁响应式布局,无需硬编码或JavaScript,显著降低维护成本,提升嵌套结构下的布局灵活性。
- 热门数据榜
相关攻略
2026-07-09 07:01
2026-07-09 07:01
2026-07-09 07:01
2026-07-09 07:00
2026-07-09 07:00
2026-07-09 07:00
2026-07-09 07:00
2026-07-09 07:00
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

