一、Element Plus X 是什么?
Element Plus X(简称 EPX)是一个开箱即用的企业级 AI 交互组件库。它的核心理念是:让开发者构建 AIGC 智能界面像搭积木一样简单。
1.1 与 Element Plus 的关系
维度 | Element Plus | Element Plus X |
定位 | 通用 UI 组件库 | AI 场景专用组件库 |
依赖关系 | 基础依赖 | 基于 Element Plus 扩展 |
典型组件 | Button、Input、Table | Bubble、Typewriter、Sender |
使用场景 | 后台管理系统 | AI 对话应用 |
1.2 核心组件一览
EPX 将 AI 对话场景拆解为 6 大类组件:
分类 | 组件 | 功能描述 |
通用 | Typewriter、Bubble、BubbleList、Conversations | 打字效果、对话气泡、会话管理 |
唤醒 | Welcome、Prompts | 欢迎页、提示词推荐 |
表达 | Sender、MentionSender、EditorSender、Attachments、FilesCard
| 输入框、附件管理 |
确认 | Thinking、ThoughtChain | 思考中状态、思维链展示 |
工具 | useXStream、useSend、useRecord | 流式请求 Hooks |
二、5 分钟快速上手
2.1 环境要求
- Node.js ≥ 18.x(推荐 ≥ 20.x)
- Vue ≥ 3.3.x
- pnpm ≥ 10.x(推荐)
2.2 安装
# pnpm(推荐)pnpm add vue-element-plus-x# npmnpm install vue-element-plus-x --save# yarnyarn add vue-element-plus-x2.3 按需引入 vs 全量引入
推荐:按需引入(支持 Tree Shaking)
[xss_clean]import { BubbleList, Sender } from 'vue-element-plus-x'const list = [ { content: '你好,我是 AI 助手', role: 'assistant' }, { content: '请介绍一下 Vue3', role: 'user' }] [xss_clean]全量引入(main.ts)
import { createApp } from 'vue'import ElementPlusX from 'vue-element-plus-x'import App from './App.vue'const app = createApp(App)app.use(ElementPlusX)app.mount('#app')三、生态与模板项目
EPX 不只是一个组件库,它有一整套生态系统:
4.1 官方生态
项目 | 说明 |
ruoyi-element-ai | 仿豆包 UI 的完整模板项目,含登录、会话管理、多轮对话 |
element-ui-x | Vue2 版本支持(如果你的项目还在用 Vue2) |
hook-fetch | 对标 Axios 的优雅请求库,专为流式请求设计 |
ChatArea | 轻量级聊天框(如果 EPX 太重,用这个) |
四、实际项目案例
假设你要做一个「AI 代码助手」界面,核心代码只需要:
[xss_clean]import { ref } from 'vue'import { BubbleList, Sender, useXStream } from 'vue-element-plus-x'const messages = ref([ { role: 'assistant', content: '你好!我是你的代码助手,有什么可以帮你?' }])const { data, loading, start, stop } = useXStream({ url: '/api/code-assistant'})async function handleSend(userMessage: string) { // 1. 添加用户消息 messages.value.push({ role: 'user', content: userMessage }) // 2. 添加 AI 占位消息 messages.value.push({ role: 'assistant', content: '', loading: true }) // 3. 启动流式请求 await start({ body: { message: userMessage } }) // 4. 更新最后一条消息 const lastMsg = messages.value[messages.value.length - 1] lastMsg.loading = false lastMsg.content = data.value} [xss_clean]效果:一个支持打字效果、Markdown 渲染、流式输出、停止生成的完整 AI 对话界面,代码不到 50 行。
五、总结:什么时候用 Element Plus X?
场景 | 推荐方案 |
快速搭建 AI 对话 Demo | Element Plus X |
生产级 AI 应用 | Element Plus X + ruoyi-element-ai 模板 |
已有 Element Plus 项目增加 AI 功能 | 按需引入 EPX 组件 |
只需要简单聊天框 | ChatArea |
Vue2 项目 | element-ui-x |
项目信息
- 官方文档:https://element-plus-x.com/zh/
- GitHub 仓库:https://github.com/HeJiaYue520/Element-Plus-X
