Vue3 工程化实现的 LeetCode 专属刷题辅助工具,支持粘贴/编写 LeetCode 标准 JS 算法代码,自动解析语法与数据结构,实时生成 2D+3D 融合可视化结构,实现代码逐行执行 ↔ 动态节点生成/变化强绑定;内置代码编辑器、测试用例运行、本地判题,完美贴合 LeetCode 刷题流程,轻量化可直接运行。
| 分类 | 技术选型 | 核心用途 |
|---|---|---|
| 核心框架 | Vue3.4 + Vite + <script setup> |
工程化开发、组件化渲染 |
| 状态管理 | Pinia | 全局管理代码、可视化状态、LeetCode 题目配置 |
| UI 组件 | Element Plus | 布局、按钮、表单、弹窗、控制台面板 |
| 代码编辑 | Monaco Editor(vue3 适配) | LeetCode 代码编写、语法高亮、逐行标记 |
| 2D 渲染 | 原生 Canvas 2D API | 代码快照、执行日志、数据轨迹、测试用例展示 |
| 3D 渲染 | Three.js r160+ | 数组/链表/二叉树 3D 节点、动画、连线渲染 |
| 核心能力 | 原生 JS 代码解析 + 安全沙箱 | 解析 LeetCode 代码、隔离执行、节点联动调度 |
| 动画控制 | requestAnimationFrame | 2D+3D 帧同步渲染,无延迟、无卡顿 |
- LeetCode 100% 适配
- 自动识别 LeetCode 标准函数:
twoSum/reverseList/inorderTraversal等 - 自动识别内置数据结构:
ListNode(链表)、TreeNode(二叉树) - 自动加载 LeetCode 测试用例、匹配输入输出格式
- 自动识别 LeetCode 标准函数:
- 可视化强关联 一行 LeetCode 代码 = 2D 代码高亮 + 3D 节点操作(生成/移动/变色/连线)
- 2D+3D 分工
- 2D:代码编辑、执行日志、测试用例、数据平面快照
- 3D:数据结构立体可视化、动态动画、节点关联
- 安全规范 沙箱执行代码,禁止恶意操作,无全局污染
src/
├── api/ # 模拟 LeetCode 题目/测试用例接口
├── components/ # 核心业务组件
│ ├── CodeEditor.vue # LeetCode 代码编辑器(Monaco)
│ ├── VisualCanvas2D.vue # 2D 可视化组件
│ ├── VisualThree3D.vue # 3D 可视化组件
│ └── LeetCodeTestCase.vue # 测试用例管理
├── stores/ # Pinia 状态
│ ├── codeStore.js # 代码/执行状态
│ └── visualStore.js # 2D+3D 可视化状态
├── utils/ # 工具库
│ ├── codeParser.js # LeetCode 代码解析器
│ ├── sandBox.js # 安全沙箱执行
│ └── syncCore.js # 代码-2D-3D 联动核心
├── views/
│ └── Index.vue # 主页面
├── App.vue
└── main.js
- 集成 Monaco Editor,默认填充 LeetCode 官方 JS 代码模板
- 支持直接粘贴 LeetCode 刷题代码,自动语法校验、高亮
- 逐行执行标记:当前行高亮黄、已执行灰、完成绿
- 一键重置为 LeetCode 原始模板
- 解析范围:数组、链表、二叉树、循环、判断、赋值、交换
- 自动识别:
ListNode/TreeNode、函数入参、循环体、核心逻辑 - 输出执行步骤队列,用于驱动可视化
- 语法错误实时提示,定位代码行
- 实时绘制 LeetCode 数据结构平面快照
- 输出执行日志:对应代码行+节点操作
- 展示测试用例输入输出
- 数组:3D 柱状体(高度=数值)
- 链表:球体节点 + 圆柱体指针连线
- 二叉树:层级球体节点 + 父子连线
- 动画:交换位移、高亮变色、节点生成/销毁
- 初始化 → 生成 3D 节点
- 循环/比较 → 节点标黄
- 赋值/交换 → 节点动画
- 执行完成 → 全部节点变绿
- 按钮:运行、单步执行、暂停、重置、速度调节
- 绑定 LeetCode 测试用例,一键运行校验
- 执行状态实时展示:执行中/完成/错误
- 内置高频 LeetCode 题目代码模板
- 自动匹配测试用例,本地判题
- 执行结果对标 LeetCode 官方输出
- 算法思路/复杂度提示面板
- 统一使用
<script setup>语法,无 Options API - 组件化拆分:代码编辑器/2D/3D 独立组件,解耦维护
- Pinia 统一管理全局状态,禁止全局变量
- 可视化逻辑抽离到
utils/,组件仅负责渲染 - 全中文注释,标注 LeetCode 代码 ↔ 可视化节点 关联关系
- 响应式布局,适配 PC 端刷题场景
严格按照此文档生成 Vue3+Vite 完整项目:
1. 使用 Vue3 <script setup> + Pinia + Element Plus + Monaco Editor
2. 实现 LeetCode 专属代码编辑器,支持粘贴官方 JS 代码
3. 自动解析 LeetCode 代码,识别 ListNode/TreeNode/数组/循环
4. 集成 Canvas 2D + Three.js 实现 2D+3D 融合可视化
5. 代码逐行执行与 2D 高亮、3D 节点实时强关联
6. 支持运行/单步/暂停/重置、测试用例运行、本地判题
7. 输出完整可运行项目,包含所有文件、依赖、配置
8. 项目可直接 npm install 安装依赖并运行
npm create vite@latest leetcode-algo-visual -- --template vue
cd leetcode-algo-visual
npm install pinia element-plus three monaco-editor-vue3
npm run dev