以前做前端,最磨人的真不是业务逻辑,而是那种"一个像素都不能差"的 UI 拼装活。一个普通按钮从设计稿到上线,要调 padding、border-radius、hover 态、active 态、disabled 态,稍微不仔细,视觉还原度就崩了。更别提表格、弹窗、表单校验这一整套组合拳,每个项目都要重新来一遍,纯粹是拿命在堆组件。自从我把 AI 引入 UI 开发流程之后,这类纯拼装工作基本都交给工具了,我剩下的精力主要花在需求梳理和结果审查上。这篇文章想聊的,就是我这段时间实测过的几条路线、总结出的完整工作流,以及哪些地方 AI 真的能顶,哪些地方还得人来兜底。如果你也是被 UI 还原度反复折磨的前端或全栈开发者,这篇应该能帮你少走不少弯路。
1. 为什么拼 UI 曾经是前端最不想碰的活
1.1 重复造轮子的隐形消耗
很多没写过业务后台的人,对 UI 开发的印象还停留在"照着设计稿敲代码"这个层面,觉得有手就行。但实际接手的项目从来不会这么温柔。以我做过的一个数据管理后台为例,光是一个列表页,就包含搜索表单、时间范围选择器、筛选下拉、表格、分页器、操作按钮组、空状态提示、加载骨架屏这八类组件。
每一类组件都有它的细枝末节:下拉框要不要支持远程搜索、表格列要不要固定左侧、操作按钮在权限不足时是隐藏还是置灰、分页器在数据量小于一页时要不要显示。这些细节在设计稿上往往不会全部标注,开发的时候全靠经验补,补完还要自己反复点一遍验收。一个项目做完,类似这样重复的"填空式"工作占了大概六成时间。
更让人崩溃的是换项目之后的重来。每个后台管理系统长得都差不多,但组件库规范不同、技术栈不同、封装方式不同,之前沉淀的东西只能带走思路,带不走代码。我们在一个项目里反复写 TableColumn 的 render 函数,在另一个项目里又用另一种组件库的插槽语法重写一遍,这本质上就是数字时代的"搬砖"——每块砖长得一样,但你每次都不得不亲手搬。
1.2 设计还原度是隐形杀手
拼 UI 的痛苦还有一半来自"还原度"这三个字。设计师交付的设计稿,严格来说更像是一张效果图,而不是一份施工图。间距是 8 还是 6,肉眼根本分不清,但 AI 导出的标注文件会写;字体是 14 号还是 15 号,截图里看不出差别,但评审的时候设计师一眼就能发现。
这就导致前端大量时间花在"猜测"上:按钮左右内边距到底是多少、标题和描述之间的行距遵循什么规律、卡片阴影的透明度取什么值。传统的做法是把这些值整理成设计令牌(design token),但在没有设计系统沉淀的团队里,每次都是边写边猜,写出来还得来回改。
这个矛盾的本质上在于:设计稿描述的是"最终视觉效果",而代码需要的是"生成规则的完整参数"。两者之间存在一层翻译损耗,而这层翻译恰恰是 AI 最擅长干的事情。
1.3 AI 切入 UI 开发的关键节点
那么 AI 到底是从哪儿开始改变这件事的?我梳理下来,主要切在三个节点上。
第一个节点是从自然语言到组件代码。你告诉 AI"我要一个带搜索、筛选、分页的用户列表页",它直接给你输出一版可以跑的 React 或 Vue 代码,骨架、样式、基本交互一次到位。这个节点替代的是从零手写组件的环节。
第二个节点是从设计稿到代码。把设计稿的截图或导出文件喂给 AI,它能识别出布局结构、颜色、字号、间距,生成高度匹配的页面代码。这个节点替代的是人工解读设计稿、手动还原的环节。
第三个节点是在已有项目中内联生成。不是从空白页开始,而是在你现有的业务代码里,让 AI 根据上下文生成符合当前项目风格的新组件,顺便自动补上样式文件和响应式适配。这个节点替代的是"查老代码、模仿已有风格"的环节。
这三个节点组合起来,就是我说的"不想再拼 UI"的真正含义——不是完全不写代码了,而是不再从空白画布出发去堆砌每一块积木。
2. 我实测过的几条 AI 生成 UI 路线
2.1 描述式生成:用嘴写页面
描述式生成是目前门槛最低、上手最快的一条路线。你不需要截图,不需要标尺寸,只需要用一段自然语言把页面需求说清楚,AI 就会生成对应的前端代码。
我最早尝试的是用一段话描述需求,生成 React + Tailwind CSS 的页面。比如输入:"写一个用户管理页面,顶部是搜索区,包含关键词输入框和状态筛选下拉框,下面是数据表格,表格操作列有编辑和删除按钮,删除需要二次确认。整体风格简约,主色用蓝色系。"生成的结果虽然算不上惊艳,但骨架完全是能用的,表格、分页、按钮这些基础元素全部齐活。
这里的核心技巧在于描述要结构化。AI 不理解"好看"是什么意思,但它理解"栅格分两栏""间距统一为 12px""主色 #2563EB"这类明确指令。如果你把需求描述拆成:页面结构、区块划分、组件类型、交互行为、视觉风格五个维度,生成质量会有肉眼可见的提升。
不过描述式生成的短板也很明显:它没有视觉基准。AI 对"简约"的理解和设计师不一样,对"蓝色系"的选择也可能偏到你不太想认的程度。所以这条路线更适合内部工具、管理后台、原型验证这类对视觉精确度要求不高的场景。
来看一个我在实际项目里用过的描述式生成案例。需求是一个订单列表页,我给的提示词是这样的:
生成一个订单管理页面的 React 组件,使用 TypeScript 和 Tailwind CSS: 1. 页面顶部是筛选区,包含订单号输入框、状态下拉选项(待支付/已支付/已发货/已完成)、下单时间范围选择器 2. 下方是统计卡片行,展示今日订单数、今日销售额、待发货数、退款数四个指标 3. 主体是订单表格,列包含订单号、商品信息、买家、实付金额、订单状态、创建时间、操作 4. 订单状态用不同颜色的 Badge 展示 5. 操作列包含查看详情和发货按钮 6. 表格底部是分页器,显示总数 7. 整体使用浅灰背景、白色卡片,间距为 16px生成出来的组件大概一百多行,骨架完整,交互缺了真正的数据请求逻辑,但视觉结构和布局完全可以直接用,我再花十几分钟补上 API 调用就能接进项目。这在过去,光搭这个页面的骨架就要一个小时起步。
2.2 设计稿转代码:从像素到结构
如果说描述式生成是"口述装修",那设计稿转代码就是"看图施工"。把设计稿的截图喂给 AI,它通过视觉识别分析布局坐标、颜色值、字号层级,然后生成对应的代码。
我在一个数据可视化项目中试过这条路。设计师交付了一张大屏监控面板的设计稿,上面有地图、折线图、柱状图、指标卡片、滚动列表,分布复杂。手工照着写光是定位就得半天。我把设计稿导出成 PNG 喂给 AI,要求生成 HTML 结构加 Tailwind 样式,它识别出了大致的栅格分布:左侧指标区、中间地图区、右侧告警列表区。虽然细节上还有一些偏差,比如某些区块的尺寸比例没卡准,但整体框架已经省掉了最费时的排布阶段。
设计稿转代码有几个实用经验。第一,清晰度很重要,截图越清楚识别越准,模糊的小字标注基本会被忽略。第二,尽量给单页设计稿,一整块长图转代码容易让 AI 顾此失彼,切分成几个区块分别处理再合并,效果更稳定。第三,转换后一定要抽查对齐参数,AI 对视觉间距的估算天然不如它对文本语义的理解。
这里有一个常见的认知误区:有人以为设计稿转代码能做到"像素级还原"。实测下来,简单的表单、卡片类页面还原度能到九成以上,复杂布局、叠加阴影、渐变纹理的页面还原度大概六到八成。AI 能帮你把 80% 的骨架工作做完,剩下 20% 的精确调校仍然需要人工介入。
2.3 内联生成:让 AI 在你项目里干活
第三条路线是我现在最常用的方式——不脱离项目环境,直接在代码编辑器里让 AI 生成 UI 组件。这种方式和前两条路线的最大区别在于,AI 能读取你当前项目的上下文:你已经装了什么依赖、用了什么组件库、样式的写法习惯、API 的封装方式。
我常用的场景是在一个老项目里新增功能页面。过去要从老代码里翻出 Button、Modal、Table 的用法,照着复制粘贴改参数,还得小心样式覆盖问题。现在只需把需求写清楚,AI 会参考项目里已有的组件封装,生成风格统一的代码。它知道你这个项目里 Modal 是用 visible 还是 open 控制,知道按钮统一用 size="small",知道表格的列配置写在 config 文件里而不是直接写在 JSX 里。这些隐性规则,恰恰是新人接手项目时最容易踩坑的地方。
内联生成的价值不只在生成新页面,更在改老页面。我经常遇到"给这个表格加一列操作按钮""把顶部导航的样式改成胶囊风格"这类小需求,过去要定位文件、找到结构、小心翼翼改完再自测一遍,现在直接圈中相关代码,描述需求,AI 把改动方案列出来,我审查一遍再接受,效率提升非常明显。
2.4 三条路线的选型对比
用了三轮之后,我对这几条路线做了个简单的对比,方便不同场景直接选型。
| 路线 | 适用场景 | 还原度 | 上手成本 | 主要短板 |
|---|---|---|---|---|
| 描述式生成 | 原型验证、内部系统、工具类页面 | 中 | 极低 | 缺乏视觉基准,风格可能跑偏 |
| 设计稿转代码 | 有设计稿且布局较规整的页面 | 较高 | 低 | 复杂设计细节失真,需要人工调校 |
| 内联生成 | 已有项目新增/修改功能 | 取决于项目规范 | 中 | 依赖项目代码质量和上下文清晰度 |
我个人的习惯是:全新项目或者没有设计稿的内部工具,直接走描述式生成;有正式设计稿的对外页面,走设计稿转代码搭骨架再手调;日常维护的老项目,一律内联生成。三者并不冲突,甚至可以组合使用——先用描述式生成把逻辑理清楚,再放到项目里让 AI 适配现有风格。
3. 打工人版 AI UI 工作流:从需求到上线的完整路径
3.1 把需求喂给 AI 的正确姿势
不管走哪条路线,提示词的质量决定了生成结果的底线。很多人的 AI 生成效果差,八成不是工具不行,而是需求描述太含糊。
我总结了一个需求描述模板,分为五个层次:
- 页面类型:是列表页、详情页、表单页还是看板页,不同页面类型对应的组件组合完全不同。
- 区块划分:页面从上到下、从左到右分成哪些区域,每个区域放什么内容。
- 组件清单:明确列出需要的组件类型,搜索框、表格、下拉、弹窗、步骤条,不要怕啰嗦。
- 交互要求:点击发生什么、选中发生什么、提交后怎么跳转、失败怎么提示。
- 风格约束:主色调、字体大小、间距体系、圆角风格、是否有暗色模式需求。
举个例子,一个常见的描述可能是这样的,我把它拆开对照看:
生成一个"创建项目"的表单页面组件,技术栈 React + Tailwind: - 页面居中布局,最大宽度 720px,白色卡片背景 - 表单包含项目名称(必填,最长 30 字)、项目描述(多行文本,非必填)、所属分组(下拉选择)、可见范围(单选按钮,公开/仅成员) - 项目名称失焦时校验是否重复,重复则下方红色提示文字 - 底部右侧是提交按钮,点击后 console.log 表单数据 - 所有输入框统一圆角 8px,边框在聚焦时变为主色 #2563EB这版提示词把"要什么"和"怎么表现"都说清楚了,生成结果基本一次成型。反观那种"帮我写个项目创建页面"的模糊描述,AI 只能靠猜,猜出来的东西大概率需要大改。
另外一个重要技巧是给 AI"负面约束"。比如"不要生成 mock 数据""不要使用日期选择器,改为输入框""只在操作列使用下拉菜单而非直接展示按钮"。AI 默认倾向于把页面做得"功能齐全",但业务往往要求克制,提前声明边界能避免它在你不希望的地方自作聪明。
3.2 生成组件的基础代码:以数据表格为例
数据表格是我日常生成频率最高的组件,也是最能体现 AI 效率的场景。我在这里完整拆解一次操作过程。
假设需求是做一个"设备管理"表格,包含设备名称、设备类型、所属区域、在线状态、最后在线时间、操作列。我给 AI 的提示词聚焦在表格本身,不牵扯其他页面元素:
生成一个设备表格组件: - 列:设备名称(文本)、设备类型(标签展示)、所属区域(文本)、在线状态(用绿点在线/灰点离线的状态灯)、最后在线时间(格式化 YYYY-MM-DD HH:mm) - 数据类型定义在单独 interface 里 - 操作列包含"详情""编辑""下线"三个按钮,下线按钮二次确认 - 表格需要空状态文案"暂无设备数据" - 加载时显示骨架屏 - 不使用第三方表格库,用原生 table 加 Tailwind 样式生成结果约一百五十行代码,结构清晰,类型定义完善,在线状态的样式逻辑也处理得很到位。我拿到之后主要检查几个地方:props 命名是否规范、空状态是否真的覆盖了、二次确认的交互是否绑在正确的事件上。这些检查大概花五分钟,过去从零手写加调试至少半小时。
这类基础组件的生成质量已经很稳定,原因在于数据表格、表单、卡片列表这类组件的模式高度标准化,AI 见得太多了,生成出的代码几乎是模板级别的稳定。真正需要人工花心思的,是接入业务数据流之后的各种边界情况。
3.3 把生成代码接进设计系统和业务样式
生成完基础组件,接下来是关键的一步:让它和你现有的设计系统对齐,不能生成一个"看起来挺好但和项目气质完全不符"的页面。
具体做法是让 AI 在生成前就了解你的设计令牌。推荐的做法是把项目的设计令牌文件的内容作为上下文提供给 AI,或者用一句话概括核心规范。比如:
项目设计规范:主色 #2563EB,成功色 #16A34A,警告色 #F59E0B,危险色 #DC2626;字号分三级 12/14/16px;间距 8px 基准;圆角 6px;按钮有默认/悬停/禁用三态。在生成前补充这段约束,AI 生成的代码会直接用设计令牌对应的 CSS 变量,而不是随意写死十六进制色值。这个区别非常重要——写死色值意味着后续该主题只能全局替换,用 CSS 变量则意味着你的设计系统还是活的。
对于我常用的业务项目,我会维护一份prompt-context.md文件,里面记录了项目的技术栈、组件库版本、设计令牌、目录结构、接口请求规范。每次让 AI 生成新页面之前,把这份文件的内容复制进去,生成结果和项目现状的匹配度会大幅提升。相当于给 AI 配了一份"入职手册"。
接入业务样式还有一个容易被忽略的点:响应式。生成组件时如果没有特别说明,AI 默认产出固定宽度布局,这在桌面端看着没问题,一收窄到平板就乱套。我现在会在提示词里主动加一句"移动端下表格改为卡片流式布局,筛选区纵向堆叠",生成结果会更贴近真实使用场景。
3.4 交互逻辑补全:AI 的弱项在这里
说实话,AI 生成 UI 最大的短板不是视觉,而是交互逻辑的完整性。视觉结构是静态的,AI 见过海量样本,模仿起来不难;但交互逻辑涉及状态流转、事件时序、边界处理,这些需要理解业务语义,AI 生成的代码经常出现逻辑断层。
举一个真实例子。我让 AI 生成一个"新建工单"的弹窗表单,要求是打开弹窗后重置表单、提交成功后关闭并刷新列表、失败后保留已填写内容并提示错误。AI 生成的代码大致满足了表面需求,但遗漏了两个细节:一是弹窗关闭再打开时没有重置校验状态,导致上次报错的红色文字仍然残留;二是提交按钮在请求期间没有禁用,快速连续点击会触发重复提交。这两个问题在静态审查代码时很难一眼发现,只有在真实操作时才会暴露。
所以我现在对 AI 生成的交互代码执行一套固定的补全策略:
- 状态重置:检查所有打开/关闭、加载完成/失败的分支,确认状态在进入和退出时都正确归位。
- 请求防抖:提交按钮、查询按钮在请求进行中必须禁用或加 loading 状态。
- 错误提示:接口失败时的提示文案要明确,不能只 console.error 了事。
- 空数据覆盖:列表为空、搜索结果为空、表单无必填项时,各有对应的 UI 状态。
- 键盘操作:弹窗支持 ESC 关闭,表单支持 Enter 提交,这类无障碍细节 AI 经常漏。
这四项补全做完,AI 生成的组件才能从"看起来能用"升级为"真正在生产环境跑得稳"。
3.5 人工验收的四象限检查清单
AI 生成 UI 不等于"生成即完成",我每次在合并代码前会过一遍验收清单,分为四个象限。
结构象限:组件拆分是否合理、是否遵循项目目录规范、是否有未使用的导入或冗余代码。
视觉象限:间距是否符合设计令牌、颜色是否来自主题变量、字号层级是否分明、暗色模式是否有明显穿帮。
交互象限:有无遗漏 loading 态、空态、错误态、禁用态;点击事件是否冒泡导致父组件响应;提交后表单是否按预期重置。
兼容象限:在窄屏下布局是否正常、浏览器回退前进是否导致状态错乱、弱网环境下是否有卡死的可能。
这个清单看起来长,但实际过一遍只需要十分钟左右。它最大的价值不是发现所有问题——AI 和人的代码都不可能零缺陷——而是把验收这件事从"凭感觉"变成"有标准"。我见过很多同事用 AI 生成代码后过一眼就合入,结果线上出了问题才回来排查,那花的精力远比验收的十分钟多得多。
4. AI 拼 UI 常翻车的场景与排查实录
4.1 生成的组件一跑就崩:报错基本靠猜
AI 生成代码最常见的翻车方式就是运行时报错,而且报错信息往往指向一个很隐蔽的位置。我遇到过一个典型案例:AI 生成的一个筛选表单,在解析日期范围参数时报Cannot read properties of undefined。报错堆栈指向组件内部的一个工具函数,但真实原因其实是生成的接口调用代码传参时少了一层解构,把filterParams对象整体传进去,而接口定义期望的是展开后的字段。
排查这类问题的思路和人工代码完全一样:从报错堆栈往上追数据链路,先看传参是什么,再看接口定义期望什么,两边一对比就发现形状不匹配。AI 生成代码时对"参数结构"的理解经常出现偏差,尤其是涉及嵌套对象、数组解构、可选链这些场景。
另一个高频崩溃点是 props 类型不匹配。AI 生成一个子组件时定义了interface Props { data: DeviceItem[] },调用方却在初始化渲染时传了null。代码在开发环境能跑,因为 TS 类型检查在构建时拦截了这个错误,但如果你在纯 JavaScript 项目里用 AI 生成代码,这类问题会直接跑到运行时报出来。
我的排查建议是:先让 AI 生成 TypeScript 版本。就算项目本身是 JS,也可以生成 TS 后把类型标注删掉,至少类型检查能倒逼 AI 把数据结构想清楚,产出的代码在形状上出错的概率会小很多。
4.2 样式跟设计稿"神似形不似"
视觉还原度的问题是 AI 生成 UI 时最常被吐槽的点,它的典型表现是:一眼看过去布局对、颜色对、组件齐,但仔细一量全是偏差。间距差了 2 像素、字号层级拉得不够开、按钮粗细和设计稿完全是两回事。
这类问题的根源在于 AI 生成样式时默认选择"最常见"的参数,而不是"我设计稿里的"参数。10 个 AI 生成的按钮有 9 个都会用 8px 圆角、2px 边框、14px 字号,因为训练数据里这类组合最频繁。如果你的设计稿刚好不是这个套路,就一定会歪。
解决思路不是让 AI 猜得更准,而是提前替它把参数定死。我在提示词里会把关键参数写成明确约束:圆角统一为 4px、输入框高度 36px、标题字号 18px 加粗、行高 1.6。给出的参数越具体,视觉偏差越小。
还有一个容易忽略的参数是间距体系。AI 默认倾向于到处用 12px 或 16px,如果你项目的间距基准是 8px,生成结果就会显得"松散但不协调"。给出间距基准值后,AI 生成的卡片内边距、区块间隔、表单栅格间隙都会在一个节奏上。
4.3 AI 自作主张加功能:画蛇添足
AI 生成 UI 时另外一个让人很无语的问题是自作主张。你让它生成一个简单的下拉筛选,它顺手给你加了搜索功能;你让它生成一个详情页,它自动拼了一个评论区和点赞按钮——但这些需求完全不存在。
这个问题的根源在于 AI 的语言模型特性:它倾向于生成"完整的合理页面",而业务往往只需要其中的一部分。解决方法是把"不要做什么"和"要做什么"放在同等级别明确表达。
比如在提示词里写明:"只渲染表格和分页器,不需要筛选区、不需要统计卡片、不需要导出按钮。"负面约束越具体,AI 跑偏的可能越小。
还有一点经验是分步生成而不是一次生成整个页面。一次要求生成整个后台页面,AI 为了凑完整度会填很多默认模块;分步生成——先表格、再筛选区、再操作逻辑——每一步只聚焦一个模块,AI 发挥的空间小了,质量反而更可控。
4.4 生成的代码风格和项目规范不一致
AI 生成的代码在"对错"层面没问题,但在项目规范层面经常不合格。它可能不用你们约定的request封装而是直接fetch,可能在组件内写了useEffect初始化数据而不是走你们的数据加载框架,可能用<a>标签实现按钮而不是用统一封装的<Button>。
这类问题在单次生成时不容易察觉,但积累几周后会变成技术债——代码读起来不像是一个团队写的,维护成本直线上升。
我的解决办法是把项目的编码规范文档化,做成一份精简版的贡献指南,在生成代码时作为上下文提供给 AI。里面包含:接口请求统一走src/api下的封装方法;组件文件放在src/components/下并遵循命名规则;样式优先用 Tailwind 工具类,不写独立 CSS 文件;所有表单组件使用项目封装的FormItem包装。这些规范过去靠人肉把关,新人进来要花一两天适应,现在 AI 在生成时就能提前遵守。
4.5 常见问题速查表
| 症状 | 可能的根因 | 排查思路 | 预防手段 |
|---|---|---|---|
| 页面布局全错乱 | 设计稿图片分辨率低,AI误判结构 | 换高清图重转 | 单区块导出,减少长图 |
| 组件渲染空白 | props传参形状不对 | 从报错堆栈追数据链 | 强制生成TypeScript版本 |
| 间距不够协调 | 没给间距基准 | 对照设计token修正 | 提前声明间距体系 |
| 交互漏状态 | 生成时没描述完整状态流转 | 走一遍完整交互链路 | 验收检查清单覆盖四态 |
| 代码风格不一致 | 未提供项目规范上下文 | 对照规范手动调整 | 在提示词中附编码规范 |
| 生成内容超出需求 | 没有明确负面约束 | 删掉多余模块 | 分步生成+负面约束 |
这张表是我从大量实操中整理的,每次生成 UI 遇到问题都会先对着表里定位一下根因,大部分时候能快速找到方向,不用瞎试。
5. 什么人适合用这套方案,什么人先等等
5.1 最适合先跑起来的人群
如果你是这几类人,AI 拼 UI 的方案可以直接上手:
后台管理系统开发者是最受益的群体。管理后台的页面高度模板化——列表、表单、筛选、弹窗、详情,AI 对这些场景的训练数据非常充足,生成的代码质量稳定,而且这类系统对视觉创新的要求低,对"能跑就行"的容忍度高。
全栈工程师和独立开发者也值得尽早使用。一个人撑起一个项目时,UI 往往是最耗时的环节。用 AI 生成基础页面,把省下来的时间投入到业务逻辑和数据处理,是实打实的杠杆。
产品经理做原型验证同样适合。过去画原型用 Axure 或墨刀,学一套新工具也有学习成本。现在直接把需求描述给 AI,生成的页面虽然不能上线,但足以让团队直观看到布局和交互,沟通效率提升明显。
5.2 建议先观察的人群
如果你是以下情况,建议不要急着全面依赖 AI 生成 UI。
对视觉质量要求极高的产品页面要慎重。面向 C 端用户的营销页、品牌官网,设计细节往往是核心竞争力,AI 生成的模板感很难达到精品设计的水准。这类场景更适合把 AI 当辅助工具,生成元素、做参考,核心视觉仍由专业设计把控。
完全没有前端基础的纯设计人员也要谨慎。AI 生成代码虽然降低了门槛,但调试、排查问题仍然需要基本的编程理解。指望"描述需求就得到可上线产品"目前还不现实,至少你要看得懂报错、改得动参数。
大型复杂交互项目建议渐进式引入。几十个页面互相联动、权限模型复杂、实时协作要求高的系统,AI 的上下文理解容易失真。更稳妥的方式是把单一页面作为试点,跑顺了再推广。
6. 几个真正让我工作效率翻倍的习惯
最后分享几个我实际用下来觉得受益匪浅的小习惯,它们不涉及什么高深技巧,但每一个都实打实地改变了我的工作节奏。
第一个习惯是维护一份自己的 AI 提示词库。我建了一个名为 prompt-template 的笔记文档,按照页面类型分类,存了列表页、表单页、详情页、看板页、弹窗表单等常见场景的提示词模板。每次使用前复制一份改参数,而不是从零写。这些模板经过多次迭代,效果比随手写的好得多,而且积累越久用起来越顺手。
第二个习惯是先写需求文档再生成代码。以前我接到需求就打开编辑器开始写,现在我会先用几句话把页面的结构、交互、边界条件写清楚,哪怕只是给自己看的草稿。这个习惯让 AI 生成的质量稳定了很多,其实背后的原因是:给 AI 的描述质量取决于你自己的思考质量,想不清楚的人,提示词也写不清楚。
第三个习惯是每周留出时间把手动过程和 AI 过程对比一遍。选一个新页面,一半手动写,一半 AI 生成,对比质量、效率和代码风格差距。这种做法不是为了证明 AI 更好或手动更好,而是让你始终保持对质量的判断力。工具会变强,但你如果失去了判断好坏的眼光,再强的工具也帮不了你。
第四个习惯是把 AI 当结对程序员而不是搜索引擎。很多人把 AI 当高级搜索,问一句答一句。更高效的方式是给它完整上下文:当前文件、项目规范、需求描述、期望输出,让它像结对伙伴一样参与整个编码过程。实测下来,这种使用方式生成的代码不仅质量更高,而且经常能给出你没想到的边界处理方案。
说到底,AI 拼 UI 这件事本身并不复杂,复杂的是怎么把它嵌进你已经习惯的工作流里,怎么判断哪些环节交给 AI、哪些环节自己兜底。我自己的体感是:骨架级的工作 AI 已经做得比我快,但业务语义和体验细节的把关,仍然需要我这个干了多年前端的人来收尾。这种分工方式,让我终于从"拼 UI"的重复劳动里抬起头来,把精力放到真正有挑战的事情上。