前端通用AI rules定义,适用于Cursor ,Trae,Qorder等AI开发工具

前端通用 AI Rules 定义
(适用于 Cursor、Trae、Qoder、Windsurf、Zed + AI、Codeium、Copilot 等几乎所有主流 AI 代码助手)

以下内容是 2025–2026 年在前端圈被大量验证、反复迭代后相对好用的“通用前端 Rules”模板。
你可以直接复制粘贴到 Cursor 的 Rules / Custom Instructions / 项目 .cursor/rules.md 中,或者 Trae、Qoder 等工具的类似位置。

推荐的通用前端 Rules 结构(2026 年主流写法)

# 前端通用 Rules - 适用于 React / Vue / TypeScript 项目 ## 核心原则(永远优先遵守) 1. 优先使用 TypeScript(严格模式) 2. 优先函数式 + hooks 写法,class 组件仅在极特殊场景使用 3. 组件尽量小而纯(单一职责),单个文件不超过 300–400 行 4. UI 优先使用可组合、可复用的原子组件 + 组合组件模式 5. 状态管理:能用 useState + useReducer 解决就不引入 Zustand / Jotai / Redux 6. 样式:优先 Tailwind CSS + shadcn/ui / Radix UI / Headless UI 组合 7. 代码风格严格遵循 ESLint + Prettier + typescript-eslint 推荐规则 8. 永远写 JSDoc / TSDoc 注释(尤其是工具函数、hooks、复杂组件) 9. 优先使用现代语法(可选链、nullish 合并、top-level await 等) ## 文件与目录命名规范 - 组件文件:PascalCase.tsx(例:UserProfileCard.tsx) - hooks 文件:camelCase.ts(例:useDebounce.ts) - 工具函数:camelCase.ts(例:formatCurrency.ts) - 常量:UPPER_SNAKE_CASE 或 camelCase(看语义) - 类型定义:统一放在 types/ 或同文件内以 I、T、S 前缀(视团队习惯) - 测试文件:同名 + .test.tsx / .spec.tsx - Storybook 文件:同名 + .stories.tsx ## 组件编写规范 1. 所有组件必须导出类型 Props(interface 或 type) 2. 优先使用解构 + 默认值写法 3. 必须显式声明 children?: ReactNode 4. 动态 className 使用 clsx 或 cva(class-variance-authority) 5. 禁止在组件内部写业务逻辑超过 30 行 → 抽离到 hooks / utils 6. 所有副作用必须放在 useEffect 中,并写清楚依赖数组 7. 自定义 hooks 命名必须以 use 开头 8. 禁止在 render 阶段产生副作用(setState、dispatch 等) ## 推荐的组件 Props 写法(现代风格) ```tsx interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> { variant?: 'primary' | 'secondary' | 'outline' | 'ghost' | 'destructive' size?: 'sm' | 'default' | 'lg' | 'icon' asChild?: boolean loading?: boolean leftIcon?: React.ReactNode rightIcon?: React.ReactNode } const Button = React.forwardRef<HTMLButtonElement, ButtonProps>( ( { className, variant = 'primary', size = 'default', asChild = false, loading = false, leftIcon, rightIcon, children, ...props }, ref ) => { // ... } ) Button.displayName = 'Button' 

Tailwind + shadcn/ui 使用规范

  1. 禁止 inline style(style={{}}),全部走 Tailwind
  2. 复杂组件样式使用 cva + cn 组合
  3. 颜色一律使用主题变量(theme.colors.*)或 CSS 变量
  4. 响应式优先 mobile-first(sm: md: lg: xl: 2xl:)
  5. 暗黑模式支持 class 策略(dark: 前缀)

性能与可维护性红线

  1. 禁止在循环/渲染中使用匿名函数作为 props(会导致子组件重复渲染)
  2. useMemo / useCallback 只在真正有性能问题时使用,先测再加
  3. 列表渲染必须加 key,且 key 稳定(不要用 index 做 key)
  4. 图片必须设置 width/height 防止布局偏移,或使用 next/image
  5. 禁止直接操作 DOM(document.getElementById 等),用 ref

React Query / TanStack Query 规范

  1. 所有服务端数据请求一律走 useQuery / useMutation
  2. queryKey 必须是数组且稳定([…deps])
  3. 全局配置 staleTime / gcTime / retry 等默认值
  4. 错误处理统一走 ErrorBoundary + toast

测试规范

  1. 单元测试覆盖 hooks、纯函数、工具函数(vitest + @testing-library)
  2. 组件测试写交互测试(userEvent)
  3. 优先测试用户行为而非实现细节
  4. 至少覆盖 80% 的核心业务组件和 hooks

禁止项(红线)

  1. 禁止 console.log / console.error 留在生产代码(改用 logger 或移除)
  2. 禁止 any 类型(除非极特殊场景并加 @ts-expect-error 说明)
  3. 禁止 ! 非空断言(改用 ? 可选链 + 类型保护)
  4. 禁止直接 import 第三方库的 css(应走 postcss / tailwind)
  5. 禁止写超过三层的条件嵌套(抽成函数或单独组件)

最后一条终极原则:
“写给人看的代码,让 AI 帮你生成,让测试帮你验证,让未来的自己能快速理解。”

 ### 快速复制粘贴版(直接丢进 Cursor Rules) 你可以把上面整个 markdown 内容保存为 `.cursor/rules.md` 或直接粘贴到工具的 Rules 区域。 如果你的项目有特殊技术栈(Next.js / Nuxt / Remix / Svelte / Vue3 + TS / Electron 前端等),可以告诉我,我再帮你做针对性调整。 祝你和 AI 一起写出更干净、更快、更可维护的前端代码~ 

Read more

中文文本分类新选择|AI万能分类器集成WebUI开箱即用

中文文本分类新选择|AI万能分类器集成WebUI开箱即用 在自然语言处理(NLP)的实际应用中,文本分类是构建智能客服、舆情监控、工单系统、内容推荐等场景的核心能力。传统方法往往依赖大量标注数据进行模型训练,成本高、周期长。而随着预训练语言模型的发展,零样本学习(Zero-Shot Learning) 正在改变这一局面。 本文将介绍一款基于 StructBERT 零样本分类模型 的 AI 万能分类器镜像——无需训练、支持自定义标签、集成可视化 WebUI,真正实现“开箱即用”的中文文本智能打标解决方案。 🌟 为什么需要“零样本”文本分类? 在实际业务中,我们常常面临这样的问题: * 新的分类需求不断出现(如新增投诉类型) * 标注数据稀缺或成本过高 * 快速验证分类逻辑是否可行 * 希望快速搭建原型系统进行演示 传统的监督学习流程:收集数据 → 清洗标注 → 训练模型 → 部署上线,动辄数周甚至数月。而零样本分类技术让我们可以跳过训练阶段,在推理时直接定义类别标签,由模型根据语义理解自动判断归属。 💡 零样本

前端实现Word文档在线编辑与导出:基于mammoth.js与Blob对象的完整解决方案

如何在浏览器中直接编辑Word文档并导出?本文将深入探索一种基于mammoth.js和Blob对象的完整技术方案。 在当今的Web应用开发中,实现文档的在线编辑与导出已成为常见需求。无论是企业内部系统、教育平台还是项目管理工具,都迫切需要让用户能够在浏览器中直接编辑Word文档,而无需安装桌面软件。本文将详细介绍如何利用mammoth.js和Blob对象实现这一功能,并对比其他可行方案。 一、为什么选择mammoth.js与Blob方案? 在Web前端实现Word文档处理,主要有三种主流方案:浏览器原生Blob导出、mammoth.js专业转换和基于模板的docxtemplater方案。它们各有优劣,适用于不同场景。 mammoth.js的核心优势在于它能将.docx文档转换为语义化的HTML,而非简单复制视觉样式。这意味着它生成的HTML结构清晰、易于维护和样式定制。配合Blob对象,我们可以轻松将编辑后的内容重新导出为Word文档。 与直接使用Microsoft Office Online或Google Docs嵌入相比,mammoth.js方案不依赖外部服务,能更好地

C# 技术栈下的 WebAPI 数据协议实战解析:RESTful 与 GraphQL 的对决

一、基础架构设计对比  1. RESTful:资源驱动的.NET原生方案 核心特性: 通过 ASP.NET Core 的 [ApiController] 和路由模板实现资源管理,每个端点对应一个 HTTP 方法。例如获取商品信息的典型实现: [ApiController] [Route("api/products")] public class ProductsController : ControllerBase { [HttpGet("{id}")] public IActionResult GetProduct(int id) => Ok(_productRepo.GetById(id)); // 单资源获取 } 优势: * 遵循 HTTP 规范,天然支持无状态设计和缓存(如 [ResponseCache]

Spring 核心技术解析【纯干货版】- XV:Spring 网络模块 Spring-Web 模块精讲

Spring 核心技术解析【纯干货版】- XV:Spring 网络模块 Spring-Web 模块精讲

Spring Framework 作为 Java 生态中最流行的企业级开发框架,提供了丰富的模块化支持。其中,Spring Web 模块是支撑 Web 开发的基础组件,无论是传统的 MVC 应用,还是 REST API 及微服务架构,都离不开它的核心能力。 本篇文章将深入解析 Spring Web 模块的核心概念、依赖关系、作用及关键组件,并通过实际案例展示如何使用 Spring Web 进行 RESTful API 调用。本文力求内容精炼、干货满满,帮助你掌握 Spring Web 的核心技术点。 文章目录 * 1、Spring-Web 模块介绍 * 1.1、Spring-Web 模块概述 * 1.2、Spring-Web