Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

VitoHowe/chat-antX

Repository files navigation

Chat AntX - 基于 Ant Design X 的聊天应用

这是一个使用 Ant Design X 组件库构建的现代化聊天应用界面。

🚀 项目特性

  • 现代化 UI:基于 Ant Design X 最新组件
  • 用户认证:完整的登录/注册系统,现代化 UI 设计
  • 响应式设计:支持 LTR/RTL 布局切换
  • 组件化架构:使用 React + TypeScript
  • 按需引入:优化打包体积,只加载使用的组件
  • 开发友好:完整的 TypeScript 支持

📦 技术栈

  • 框架: Umi - 企业级前端应用框架
  • UI 组件:
  • 开发语言: TypeScript
  • 包管理器: pnpm

🛠️ 安装与使用

环境要求

  • Node.js >= 16
  • pnpm >= 7

安装依赖

pnpm install

启动开发服务器

pnpm dev

构建生产版本

pnpm build

📁 项目结构

chat-antX/
├── src/
│ ├── components/ # 组件目录
│ │ └── ProductList.tsx # 主要聊天界面组件
│ ├── pages/ # 页面目录
│ │ ├── auth.tsx # 登录/注册页面
│ │ ├── auth.less # 认证页面样式
│ │ └── ...
│ └── services/ # 服务目录
│ ├── api.service.ts # API服务封装
│ └── auth.service.ts # 认证服务
├── .umirc.ts # Umi 配置文件
├── package.json # 项目依赖配置
└── README.md # 项目说明文档

🔧 核心功能

用户认证系统

登录/注册页面 (/auth)

功能特性:

  • 现代化 UI 设计:采用渐变背景、卡片式设计、流畅动画
  • 双模式切换:登录和注册模式无缝切换
  • 表单验证:完整的前端表单验证机制
  • 响应式布局:适配移动设备和桌面端
  • 用户体验优化:加载状态、错误提示、成功反馈

登录功能:

  • 用户名输入(最少 3 个字符)
  • 密码输入(最少 6 个字符)
  • API 接口:POST /login

注册功能:

  • 用户名输入(字母、数字、下划线)
  • 邮箱验证(标准邮箱格式)
  • 密码输入(最少 6 个字符)
  • 密码确认(一致性验证)
  • API 接口:POST /register

技术实现:

  • 表单管理:使用 Ant Design Form 组件
  • 状态管理:React Hooks (useState)
  • 路由跳转:Umi history 对象
  • 本地存储:JWT token 自动保存
  • API 集成:统一的错误处理和响应管理

认证服务 (AuthService)

功能说明:

  • login():用户登录,自动保存 token
  • register():用户注册,成功后引导登录
  • logout():清除本地 token,退出登录
  • getToken():获取存储的认证 token
  • isAuthenticated():检查用户登录状态

数据类型:

// 登录请求参数
interface LoginRequest {
 username: string;
 password: string;
}
// 注册请求参数
interface RegisterRequest {
 username: string;
 password: string;
 email: string;
}
// 用户信息
interface UserInfo {
 id: string;
 username: string;
 email: string;
 token?: string;
}

ProductList 组件

位置:src/components/ProductList.tsx

功能说明:

  • 对话列表:左侧显示多个对话会话
  • 聊天气泡:支持用户和系统消息的气泡显示
  • 快捷提示:提供预设的对话启动器
  • 智能建议:输入"/"触发命令建议
  • 布局切换:支持 LTR(从左到右)和 RTL(从右到左)布局

主要参数:

  • direction: 布局方向('ltr' | 'rtl')
  • value: 当前输入值
  • items: 对话列表数据

⚙️ 配置说明

Umi 配置 (.umirc.ts)

export default defineConfig({
 // 路由配置
 routes: [
 { path: "/", component: "index" },
 { path: "/docs", component: "docs" },
 { path: "/products", component: "products" },
 { path: "/auth", component: "auth" }, // 新增认证页面
 ],
 // 包管理器
 npmClient: "pnpm",
 // Ant Design 按需引入配置
 plugins: ["@umijs/plugins/dist/antd"],
 antd: {
 // Ant Design 5.x 默认支持按需引入,无需配置 import
 style: "css", // 自动引入样式
 configProvider: {}, // 主题配置
 },
});

按需引入优势

  • 自动按需引入:Ant Design 5.x 默认支持 Tree Shaking,自动移除未使用的代码
  • 零配置优化:无需手动配置,开箱即用
  • 减少打包体积:只打包实际使用的组件
  • 提升加载速度:减少不必要的资源加载
  • 自动化处理:无需手动引入样式文件

🎨 UI 设计特点

现代化认证页面

视觉特色:

  • 渐变背景:多色彩渐变,营造科技感
  • 玻璃态效果:毛玻璃背景模糊,层次分明
  • 浮动动画:背景装饰元素的漂浮动画
  • 卡片设计:圆角阴影,悬停效果
  • 流畅过渡:所有交互都有平滑动画

用户体验:

  • 响应式设计:完美适配各种屏幕尺寸
  • 表单友好:清晰的输入提示和错误反馈
  • 加载状态:按钮加载动画,操作状态清晰
  • 视觉层次:合理的间距和字体层级

🎨 样式与主题

项目支持 Ant Design 的主题定制功能,可以通过修改 .umirc.ts 中的 antd.configProvider 配置来自定义主题。

Ant Design 5.x 的优势:

  • CSS-in-JS:动态主题切换
  • 设计令牌:更灵活的主题定制
  • 性能优化:更小的运行时体积

🚨 常见问题

1. 依赖安装问题

如果遇到依赖安装失败,请尝试:

rm -rf node_modules pnpm-lock.yaml
pnpm install

2. TypeScript 类型错误

确保安装了所有必要的类型定义:

pnpm add -D @types/react @types/react-dom

3. 组件按需引入不生效

检查 .umirc.ts 中是否正确配置了 antd 插件。

📝 开发日志

v2.0.0 (2025-01-XX)

  • 新增用户认证系统
    • 现代化登录/注册页面设计
    • 完整的表单验证机制
    • JWT token 自动管理
    • 响应式 UI 适配
  • API 服务优化
    • 统一的认证服务封装
    • 错误处理和用户反馈
    • TypeScript 类型安全
  • UI/UX 提升
    • 渐变背景和玻璃态效果
    • 流畅的动画过渡
    • 现代化的视觉设计
  • 项目结构优化
    • 新增 services 目录
    • 完善的代码注释
    • 更新项目文档

v1.0.0 (2025年06月30日)

  • ✅ 初始化项目结构
  • ✅ 集成 Ant Design X 组件库
  • ✅ 配置按需引入
  • ✅ 实现聊天界面基础功能
  • ✅ 添加 TypeScript 支持
  • ✅ 完善项目文档

🤝 贡献指南

  1. Fork 本仓库
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。


💡 提示:如果你是编程初学者,建议先熟悉 React 和 TypeScript 的基础概念,这将帮助你更好地理解和修改代码。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /