当前位置: 首页 > news >正文

后端使用 AI 开发前端速成:第五期:Cursor 深度工作流与 Prompt 工程

📌发布状态:未发布

第五期:Cursor 深度工作流与 Prompt 工程

本期目标:把 Cursor 从"代码生成器"用成"项目级开发助手"
核心理念:Prompt 的质量直接决定输出代码的质量。花 10 分钟写一个好的 Prompt,能省下一小时的调试时间。


目录

  • 第一章:Cursor 的核心能力
  • 第二章:Agent 模式深度使用
  • 第三章:@ 符号高级用法
  • 第四章:项目级 Prompt 设计
  • 第五章:六大场景 Prompt 模板实战
  • 第六章:AI 生成代码的审查方法论
  • 第七章:课后作业

第一章:Cursor 的核心能力

1.1 Cursor vs 传统 IDE + 插件

能力传统 IDE + CopilotCursor
代码补全单行/块级可一次性生成整个函数
代码修改手动修改Ctrl+K 说"改成 XXX"
文件理解当前文件整个项目上下文
终端操作手动执行Agent 自动执行
多文件操作逐个处理一次改多个文件

1.2 三大核心快捷键

快捷键功能使用场景
Ctrl+K选中代码后说"改成 XXX"局部修改、重构
Ctrl+L打开 AI 对话面板问答、代码生成
@引用项目中的文件/代码跨文件理解、上下文增强

1.3 Chat 模式 vs Agent 模式

模式用途特点适用场景
Chat问答、代码生成AI 生成代码,你手动 Apply简单需求、单文件修改
Agent复杂任务、多文件操作AI 自动创建文件、执行终端命令涉及 3+ 文件、需要安装依赖

选择原则

  • 简单需求(单文件、1-2 个函数)→ Chat 模式
  • 复杂需求(多文件、改配置、装依赖)→ Agent 模式

第二章:Agent 模式深度使用

2.1 Agent 模式的工作流程

你说需求 → AI 分析 → AI 创建/修改文件 → AI 执行命令 → 你审查结果

2.2 Agent 模式实战:从零搭建项目

场景:用 Agent 模式创建一个 Vite + React + TS 管理后台项目

Prompt

请帮我创建一个 Vite + React 18 + TypeScript 的管理后台项目骨架。 要求: 1. 使用 npm create vite@latest 创建项目 2. 安装依赖:react-router-dom、antd、axios、zustand 3. 创建以下目录结构: - src/views/(页面目录) - src/components/(组件目录) - src/stores/(状态管理) - src/utils/(工具函数) - src/types/(类型定义) 4. 创建基础文件: - src/App.tsx(路由配置) - src/main.tsx(入口) - src/stores/userStore.ts(Zustand 用户状态) - src/utils/request.ts(Axios 封装) - src/views/Login.tsx(登录页占位) - src/views/Layout.tsx(布局组件占位) 5. 配置路径别名 @/ 指向 src/ 6. 启动开发服务器,确保能正常运行 请使用 Agent 模式自动完成所有操作。

2.3 Agent 模式的注意事项

  • 权限控制:Agent 会执行终端命令,注意检查它要执行的命令是否安全
  • 分步确认:复杂任务可以让 Agent 分步执行,每步确认后再继续
  • 回滚准备:Agent 修改前,确保代码已提交到 git,方便回滚

第三章:@ 符号高级用法

3.1 @ 符号的三种引用方式

用法作用示例
@文件名引用整个文件@request.ts
@代码块引用选中的代码选中代码后按 @
@Folder引用整个文件夹@src/utils

3.2 实战:跨文件重构

场景:你想把项目中所有的axios.get调用改成封装后的request.get

操作步骤

  1. 选中request.ts中的封装代码
  2. Ctrl+K
  3. 输入:
请帮我把 @UserList.vue 中的所有 axios.get 和 axios.post 调用 替换为使用 @request.ts 中的 request 实例。 保持原有功能和错误处理逻辑不变。

3.3 上下文增强技巧

请根据 @src/types/user.ts 中的类型定义, 修改 @src/views/UserList.vue 中的代码, 确保所有 user 相关变量都使用正确的类型。

第四章:项目级 Prompt 设计

4.1 为什么需要项目级 Prompt

问题:每次新建文件都要写一遍技术栈说明?

解决:在项目根目录创建.cursorrules文件,定义项目规范。

4.2 .cursorrules 文件模板

# 项目规范 ## 技术栈 - React 18 + TypeScript(严格模式) - Ant Design 5 - Zustand(状态管理) - Axios(HTTP 请求,使用 src/utils/request.ts 封装) - React Router 6 ## 代码规范 - 使用函数组件 + Hooks - 禁止使用 any - 组件名使用 PascalCase - 文件名与组件名一致 - 类型定义放在 src/types/ 目录 ## API 规范 - 统一使用 request.ts 封装 - 接口返回格式:{ code, data, message } - 错误处理:使用 try/catch + message.error ## 样式规范 - 使用 Ant Design 组件,避免手写复杂 CSS - 使用 style={{ marginTop: 20 }} 代替内联样式类

4.3 使用方式

创建.cursorrules文件后,Cursor 会自动读取并应用到所有 AI 对话中。你不再需要每次声明技术栈。


第五章:六大场景 Prompt 模板实战

5.1 场景一:从零创建页面

请帮我创建一个新的 [模块名] 管理页面。 页面路径:src/views/[Module]List.tsx 功能需求: 1. 搜索区域:[字段列表] 2. 数据表格:[字段列表] 3. 分页功能 4. 操作列:[编辑/删除/详情] 接口信息: - GET [接口地址] - 参数:{ page, pageSize, ... } - 返回:{ code, data: { list, total }, message } 参考已有的 @src/views/UserList.tsx 的代码风格和结构。

5.2 场景二:添加新功能到现有页面

请在 @src/views/UserList.tsx 基础上,增加以下功能: 新增功能: 1. 批量删除:表格增加选择列,底部显示"批量删除"按钮 2. 导出功能:搜索区域增加"导出 Excel"按钮 3. 列设置:用户可以显示/隐藏表格列 注意: - 保持原有功能不变 - 遵循项目现有代码风格 - 使用 Ant Design 组件

5.3 场景三:接口变更适配

后端接口发生了变更,请帮我修改前端代码。 变更内容: 1. 原来的 GET /api/users 参数 { page, pageSize } 现在改为 { pageNum, pageSize } 2. 原来的返回 { data: { list, total } } 现在改为 { data: { records, total } } 3. 状态字段从 status('active'/'inactive') 改为 state(1/0) 需要修改的文件: - @src/views/UserList.tsx - @src/types/user.ts 请帮我找出所有需要修改的地方并修改。

5.4 场景四:性能优化

请帮我优化 @src/views/UserList.tsx 的性能。 当前问题: 1. 表格数据量大时(>1000 条)页面卡顿 2. 搜索时每次输入都触发请求,造成过多接口调用 3. 列表页切换时,旧请求没有取消 优化要求: 1. 添加防抖/节流处理搜索输入 2. 使用 AbortController 取消未完成的请求 3. 大表格使用虚拟滚动(如果 Antd 支持)

5.5 场景五:代码审查

请帮我审查 @src/views/UserList.tsx 的代码,找出以下问题: 审查维度: 1. 安全问题:是否有 XSS 风险、是否有 SQL 注入(前端拼接 SQL) 2. 性能问题:不必要的重渲染、大数据处理 3. 边界情况:空数据、超长文本、网络异常 4. 代码规范:TypeScript 类型是否准确、是否有 any 5. 可维护性:代码是否过于复杂、是否需要拆分组件 请按严重程度列出问题,并给出修改建议。

5.6 场景六:框架迁移

请将 @src/views/UserList.vue(Vue 3)转换为 React 组件。 要求: - 使用 React 18 Hooks - 使用 Ant Design 5 组件 - 保持原有功能不变 - 保持原有接口调用逻辑 - 使用 Zustand 替代 Pinia - 严格 TypeScript 输出:完整的 React 组件代码和必要的 store 文件。

第六章:AI 生成代码的审查方法论

6.1 五步审查法

技术栈检查 → 功能完整性检查 → 安全审查 → 性能审查 → 可维护性审查

6.2 审查清单

维度检查项工具/方法
技术栈版本是否正确、组件名是否正确查看 import
功能三态处理、分页逻辑、表单校验运行测试
安全XSS、CSRF、敏感数据泄露搜索 v-html、dangerouslySetInnerHTML
性能重复渲染、大数据、内存泄漏React DevTools Profiler
类型是否有 any、类型是否准确TypeScript 编译
规范命名、注释、代码结构ESLint

6.3 危险信号

看到以下代码,必须立即审查:

// 🚨 危险信号 1:XSS 风险 dangerouslySetInnerHTML={{ __html: content }} // 🚨 危险信号 2:SQL 注入(前端不应该拼接 SQL) const sql = `SELECT * FROM users WHERE id = ${userId}` // 🚨 危险信号 3:硬编码密钥 const API_KEY = 'sk-1234567890abcdef' // 🚨 危险信号 4:eval eval(userInput) // 🚨 危险信号 5:无限递归/循环 useEffect(() => { setState(...) }, [state])

第七章:实战

7.1 必做实战

实战 1:创建个人 Prompt 模板库

整理至少 6 个你常用的 Prompt 模板:

  1. 从零创建页面
  2. 添加功能到现有页面
  3. 接口变更适配
  4. 性能优化
  5. 代码审查
  6. Bug 调试

使用 Notion / 飞书 / 语雀 整理,每个模板包含:

  • 使用场景说明
  • 完整的 Prompt 文本
  • 注意事项

实战 2:为你的项目创建 .cursorrules

基于你实际工作的项目,创建一个.cursorrules文件,包含:

  • 技术栈和版本
  • 代码规范
  • API 规范
  • 样式规范

7.2 常见问题 FAQ

Q:Agent 模式执行了错误的命令怎么办?

Agent 执行前会询问你确认。如果不小心执行了,立即用 git 回滚:git checkout -- .

Q:.cursorrules 文件有用吗?

非常有用!它让 AI 在每次对话时都记住项目规范,减少重复说明,提高代码质量。

Q:Prompt 写多长合适?

不是越长越好,关键是信息密度。包含:技术栈 + 功能需求 + 接口定义 + 输出要求。一般 200-500 字最佳。


下一期预告:管理后台核心页面——表单页与增删改查完整闭环

http://www.rkmt.cn/news/1458280.html

相关文章:

  • Java Web 公寓报修管理系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
  • 告别裸机延时!在STM32CUBE MX环境下为TM1640编写更高效的DMA+定时器驱动
  • 华为系UI风格安卓天气应用完整工程源码,Java编写,适配Android 8.0+,含模拟定位与图标资源
  • 保姆级教程:QGC地面站二次开发中,TCP、串口、UDP三种通讯方式到底怎么选?
  • 鸿蒙开发选型指南:从手机到手表,你的第一个App该用Java、JS还是C++?
  • 自适应系统调度与计算图优化技术解析
  • 别再搞混了!C语言里sin、asin、sinh到底怎么用?一个例子讲清楚
  • S26 Ultra防窥屏原理:硬件级定向发光技术解析
  • TurboQuant原理与实战:llama.cpp轻量级LLM量化精度提升指南
  • 从一次数据泄露事件复盘:为什么我们的SM4 CBC加密没起作用?
  • 保姆级教程:为PX4飞控添加纳雷NRA12激光雷达驱动(基于PX4 1.14.0稳定版)
  • 树莓派3B轻量人脸检测方案:带接线图、流程图和即跑Python脚本
  • 别再傻傻分不清!电源纹波和噪声的实战测量与滤波方案(附示波器实测图)
  • 别再傻傻分不清了!用大白话讲明白电脑/手机里的RAM、ROM、Cache和内存条
  • 告别记事本!用Qt的QTextEdit和QTextDocument打造你的第一个富文本编辑器(附完整源码)
  • 避坑指南:HSPICE仿真不收敛?别急着改电路,先检查这5个设置和常见网表错误
  • 别再死记硬背了!用Python+Matplotlib动态可视化理解ASK、FSK、PSK和QAM
  • 从‘私钥碰撞’到‘多签钱包’:我的波场链(TRC20)资产安全升级实战记录
  • 小微企业AI落地秘籍:1-3个月见效,无需技术团队,告别踩坑!
  • 告别手动备份!用WinCC全局VBS脚本,让OnlineTableControl每小时自动导出CSV文件
  • AI辅助开发新体验:让快马平台智能分析代码并生成pytest测试用例
  • m4s-converter完整指南:5步轻松将B站缓存视频转换为通用MP4格式
  • 别光仿真了!用MATLAB复现SPICE模型,深入理解MOSFET那些数学公式
  • 超越PSNR和SSIM:用MATLAB动手实现并可视化更先进的图像质量评价指标(如LPIPS、FID)
  • Omni-Attribute:开放词汇视觉属性编码技术解析
  • 避坑指南:用Atmel ATmega4809的硬件I2C读取BQ4050电量,地址为啥总不对?
  • STM32红外遥控进阶:手把手教你实现‘分区存储’,让一个按键控制9台设备
  • 从AHB到APB:深入理解Cortex-M4总线架构中的地址重映射(Remap)实战
  • RT-Thread Studio + STM32CubeMX 联合开发避坑指南:搞定W25Q32 SPI Flash的SFUD与FAL配置
  • 视觉x代码双向理解:截图录屏直出可运行前端代码