x-components
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinese🎯 Skill 定位
🎯 Skill 定位
本 Skill 覆盖 中所有 UI 组件 —— 这是一个基于 RICH 交互范式,用于构建 AI 驱动对话界面的 React 组件库。
@ant-design/x涵盖组件选型、API 使用、组合模式及常见反模式。
前提说明:本 Skill 仅处理 UI 层。数据流和流式处理请参考、use-x-chat、x-chat-providerSkill。x-request
本 Skill 覆盖 中所有 UI 组件 —— 这是一个基于 RICH 交互范式,用于构建 AI 驱动对话界面的 React 组件库。
@ant-design/x涵盖组件选型、API 使用、组合模式及常见反模式。
前提说明:本 Skill 仅处理 UI 层。数据流和流式处理请参考、use-x-chat、x-chat-providerSkill。x-request
目录
目录
📦 包概述
📦 包概述
| 包名 | 职责 |
|---|---|
| 本 Skill 覆盖的所有 UI 组件 |
| 数据 Provider、请求、流式状态 —— 不在本 Skill 范围内 |
| Bubble 内 Markdown 渲染 —— 参见 |
bash
npm install @ant-design/x扩展了@ant-design/x。如果你已经在用antd,请将其替换为ConfigProvider。XProvider
| 包名 | 职责 |
|---|---|
| 本 Skill 覆盖的所有 UI 组件 |
| 数据 Provider、请求、流式状态 —— 不在本 Skill 范围内 |
| Bubble 内 Markdown 渲染 —— 参见 |
bash
npm install @ant-design/x扩展了@ant-design/x。如果你已经在用antd,请将其替换为ConfigProvider。XProvider
🗂️ 组件分组
🗂️ 组件分组
基于 RICH 交互范式:
| 阶段 | 组件 |
|---|---|
| 通用 | |
| 唤醒 | |
| 表达 | |
| 确认 | |
| 反馈 | |
| 全局 | |
基于 RICH 交互范式:
| 阶段 | 组件 |
|---|---|
| 通用 | |
| 唤醒 | |
| 表达 | |
| 确认 | |
| 反馈 | |
| 全局 | |
🚀 快速选型指南
🚀 快速选型指南
| 需求 | 优先阅读 |
|---|---|
| 渲染对话气泡 | COMPONENTS.md → Bubble |
| 构建聊天输入框 | COMPONENTS.md → Sender |
| 会话列表与切换 | COMPONENTS.md → Conversations |
| 展示 AI 思考过程 | COMPONENTS.md → ThoughtChain / Think |
| 在消息下方添加操作按钮 | COMPONENTS.md → Actions |
| 构建欢迎/引导页面 | COMPONENTS.md → Welcome + Prompts |
| 输入框中展示文件附件 | COMPONENTS.md → Attachments |
| 展示来源引用 | COMPONENTS.md → Sources |
| 添加快捷命令建议 | COMPONENTS.md → Suggestion |
| 展示层级文件/文件夹树 | COMPONENTS.md → Folder |
| 组合完整聊天页面 | PATTERNS.md |
| 查询具体属性 | API.md |
| 需求 | 优先阅读 |
|---|---|
| 渲染对话气泡 | COMPONENTS.md → Bubble |
| 构建聊天输入框 | COMPONENTS.md → Sender |
| 会话列表与切换 | COMPONENTS.md → Conversations |
| 展示 AI 思考过程 | COMPONENTS.md → ThoughtChain / Think |
| 在消息下方添加操作按钮 | COMPONENTS.md → Actions |
| 构建欢迎/引导页面 | COMPONENTS.md → Welcome + Prompts |
| 输入框中展示文件附件 | COMPONENTS.md → Attachments |
| 展示来源引用 | COMPONENTS.md → Sources |
| 添加快捷命令建议 | COMPONENTS.md → Suggestion |
| 展示层级文件/文件夹树 | COMPONENTS.md → Folder |
| 组合完整聊天页面 | PATTERNS.md |
| 查询具体属性 | API.md |
🛠 推荐工作流
🛠 推荐工作流
- 从 COMPONENTS.md 为每个交互阶段选择对应组件。
- 使用 PATTERNS.md 了解组件如何组合成完整页面。
- 在应用根节点用 包裹(替代
XProvider的antd),配置国际化、主题和快捷键。ConfigProvider - 使用 API.md 确认精确的属性名 —— 不要靠猜测。
- 从 COMPONENTS.md 为每个交互阶段选择对应组件。
- 使用 PATTERNS.md 了解组件如何组合成完整页面。
- 在应用根节点用 包裹(替代
XProvider的antd),配置国际化、主题和快捷键。ConfigProvider - 使用 API.md 确认精确的属性名 —— 不要靠猜测。
最小完整示例
最小完整示例
tsx
import { XProvider, Welcome, Prompts, Bubble, Sender } from '@ant-design/x';
export default () => (
<XProvider>
<Welcome title="你好!" description="有什么可以帮助你的?" />
<Prompts
items={[{ key: '1', label: '你能做什么?' }]}
onItemClick={(info) => console.log(info.data.label)}
/>
<Bubble.List items={[{ key: '1', content: 'Hello World', placement: 'end' }]} />
<Sender onSubmit={(msg) => console.log(msg)} />
</XProvider>
);tsx
import { XProvider, Welcome, Prompts, Bubble, Sender } from '@ant-design/x';
export default () => (
<XProvider>
<Welcome title="你好!" description="有什么可以帮助你的?" />
<Prompts
items={[{ key: '1', label: '你能做什么?' }]}
onItemClick={(info) => console.log(info.data.label)}
/>
<Bubble.List items={[{ key: '1', content: 'Hello World', placement: 'end' }]} />
<Sender onSubmit={(msg) => console.log(msg)} />
</XProvider>
);🚨 开发规则
🚨 开发规则
- 始终在应用根节点使用 —— 它替代了
XProvider的antd,并启用国际化、方向以及 x 专属快捷键。ConfigProvider - 在循环中用 而非
Bubble.List——Bubble处理滚动锚定、自动滚动和基于角色的布局;手动 mapBubble.List会丢失这些能力。Bubble - 保持 和
Bubble的Bubble.List属性稳定 —— 内联对象创建会导致重渲染并重置打字动画。components - 流式期间设置 ,最终 chunk 时设置
streaming={true}—— 永久保持streaming={false}会破坏完成状态。true - vs
ThoughtChain:多步工具/Agent 调用链用Think;单块可折叠的推理展示用ThoughtChain。Think - 、
Actions.Copy、Actions.Feedback是预设子组件 —— 优先使用它们,不要自己重新实现。Actions.Audio - 的
SendervsonSubmit:onChange在发送按钮或 Enter 键时触发;onSubmit在每次按键时触发 —— 不要混淆。onChange - 不要在 的
Bubble字符串中直接渲染content或Mermaid—— 请使用CodeHighlighter或contentRender映射。components
- 始终在应用根节点使用 —— 它替代了
XProvider的antd,并启用国际化、方向以及 x 专属快捷键。ConfigProvider - 在循环中用 而非
Bubble.List——Bubble处理滚动锚定、自动滚动和基于角色的布局;手动 mapBubble.List会丢失这些能力。Bubble - 保持 和
Bubble的Bubble.List属性稳定 —— 内联对象创建会导致重渲染并重置打字动画。components - 流式期间设置 ,最终 chunk 时设置
streaming={true}—— 永久保持streaming={false}会破坏完成状态。true - vs
ThoughtChain:多步工具/Agent 调用链用Think;单块可折叠的推理展示用ThoughtChain。Think - 、
Actions.Copy、Actions.Feedback是预设子组件 —— 优先使用它们,不要自己重新实现。Actions.Audio - 的
SendervsonSubmit:onChange在发送按钮或 Enter 键时触发;onSubmit在每次按键时触发 —— 不要混淆。onChange - 不要在 的
Bubble字符串中直接渲染content或Mermaid—— 请使用CodeHighlighter或contentRender映射。components
🤝 Skill 协作
🤝 Skill 协作
| 场景 | Skill 组合 |
|---|---|
| 完整 AI 聊天应用 | |
| 只构建 UI 结构 | 仅 |
| Bubble 回复中展示 Markdown | |
| 只处理流式数据流 | |
| 场景 | Skill 组合 |
|---|---|
| 完整 AI 聊天应用 | |
| 只构建 UI 结构 | 仅 |
| Bubble 回复中展示 Markdown | |
| 只处理流式数据流 | |
🔗 参考资源
🔗 参考资源
- COMPONENTS.md —— 逐组件指南,包含使用方法、核心属性和示例
- PATTERNS.md —— 完整页面组合模式和集成方案
- API.md —— 从官方组件文档自动生成的属性参考,覆盖全部 17 个组件
- COMPONENTS.md —— 逐组件指南,包含使用方法、核心属性和示例
- PATTERNS.md —— 完整页面组合模式和集成方案
- API.md —— 从官方组件文档自动生成的属性参考,覆盖全部 17 个组件