Skip to content

极客园后台管理系统

项目概述

这是一个基于React和Vite构建的前端管理系统,集成了文章管理、用户认证和数据可视化功能,通过Ant Design实现UI组件化,并采用Redux Toolkit进行状态管理,具备高性能和模块化设计的特点。

一、项目截图

  • 登录页面

An image

  • 首页 An image
  • 发布文章 An image
  • 文章列表 An image

二、 技术栈

前端技术

  • 框架: React + React Router
  • UI 组件库: Ant Design
  • 状态管理: Redux Toolkit
  • HTTP 请求: Axios(封装为 http.js
  • 图表库: ECharts
  • CSS 预处理器: SCSS

后端技术

  • API 接口: 基于 RESTful 设计
  • 认证方式: JWT(Token 认证)

开发工具

  • 构建工具: Vite
  • 代码规范: ESLint + Prettier
  • 版本控制: Git

三. 项目实现重难点

3.1 功能实现

  1. 文章管理模块

    • 难点: 多条件筛选(日期范围、状态、频道)
    • 解决方案: 使用 Ant Design 的 FormTable 组件,结合后端分页接口实现动态查询。
  2. 用户认证模块

    • 难点: Token 的无感刷新和失效处理
    • 解决方案: 通过 Axios 拦截器实现 Token 的自动注入和 401 错误跳转登录页。
  3. 数据可视化模块

    • 难点: 动态图表渲染
    • 解决方案: 封装 ECharts 组件,支持动态配置图表类型和数据。

3.2 性能优化

  1. 代码分割

    • 实现: 利用 Vite 的天然支持,结合 React 的 React.lazySuspense 实现路由懒加载。
    • 效果: 减少首屏加载时间。
  2. 请求优化

    • 实现: 防抖处理搜索请求,避免频繁调用接口。
    • 效果: 减少不必要的网络请求。
  3. 图表性能

    • 实现: 使用 useRefuseEffect 管理 ECharts 实例,避免重复渲染。
    • 效果: 提升图表渲染效率。

3.3 打包体积优化

  1. 按需引入

    • 实现: 通过 Vite 插件(如 vite-plugin-style-import)实现 Ant Design 组件的按需加载。
    • 效果: 减少打包体积。
  2. 依赖分析

    • 实现: 使用 rollup-plugin-visualizer 分析打包文件,剔除冗余依赖。
    • 效果: 优化最终产物体积。
  3. 压缩资源

    • 实现: 利用 Vite 内置的构建优化(如 @vitejs/plugin-legacyvite-plugin-compression)压缩代码和静态资源。
    • 效果: 减小静态资源体积。

四. 项目亮点

  1. 模块化设计
    • 通过 hooks(如 useChannel)封装通用逻辑,提升代码复用性。
  2. 响应式布局
    • 使用 Ant Design 的栅格系统和 SCSS 实现多端适配。
  3. Vite 优势
    • 基于 Vite 的快速启动和热更新,显著提升开发体验。

五. 后续优化方向

  1. 引入 TypeScript: 提升代码类型安全。
  2. 单元测试: 使用 Vitest 覆盖核心功能。
  3. SSR 支持: 考虑 Vite + React SSR 方案,优化 SEO。