{T}

组件库实战:完成前 5 个阶段任务开发

在本章节中,我们将演示一种与 AI 协同工作的开发模式,从零开始构建一个现代化的 Web 应用。我们将以一个 Markdown 微信渲染器(md-wx)项目为例,全程委托给名为 Builder with MCP 的 AI Agent 来执行具体的编码任务。

我们将从一个空目录开始,根据前面制定的相关文档,分为五个环环相扣的开发阶段,一步步见证 AI 如何理解需求、搭建脚手架、实现核心功能、修复 Bug、响应需求变更,并最终给我呈现出一个网页应用。

优先实现任务中的以下 5 个阶段:

  • 阶段一:项目基础架构搭建
  • 阶段二:核心预览功能开发
  • 阶段三:主题系统开发与 AI 协同调试
  • 阶段四:代码块增强与需求动态调整
  • 阶段五:响应式布局与视图模式切换

1. 阶段一:项目基础架构搭建

项目开始的第一步是搭建一个稳定、可扩展的基础架构。我们将引导 Builder Agent 完成项目的初始化和基本配置。

1.1. 初始化项目

我们向 Builder 提供了需求分析、技术架构和设计指南等文档,并下达了第一个任务:完成任务 1.1:项目初始化和配置。我们明确要求它不要超出任务范围。

由于这是一个全新的项目,工作目录是空的。AI 首先检测到目录中已存在文件(是我们的 docs 目录),这一步需要我们手动选择,选 “忽略文件并继续”的选项,然后 AI 会自己使用 npm create vite@latest . --template react 命令来初始化项目。

接下来,Builder 按照技术架构文档的要求,逐步创建了 package.jsonvite.config.js.eslintrc.cjs.prettierrc 等配置文件,并建立了规范的目录结构。整个过程完全自动化,无需人工干预。

它甚至还运行了 npm run formatnpm run build 来确保一切正常。

1.2. 完善基础样式

在完成项目初始化后,我们接着让 Builder 完成任务 1.2,即基础样式系统的构建。它根据需求创建了全局样式文件和多个主题的 CSS Modules 文件。

1.3. 阶段成果预览

当第一阶段的所有任务完成后,AI 启动了开发服务器。我们可以看到一个初步的界面,预览区域显示“预览组件开发中...”,这标志着项目的基础架构已成功搭建。值得注意的是,AI 在完成指定任务后便停止了,完美地遵循了我们的指令。


2. 阶段二:核心预览功能开发

在搭建好基础架构后,我们进入了核心功能的开发阶段。

2.1. Markdown 渲染引擎

我们向 Builder 发出了新指令,要求完成“任务 2.1:Markdown 渲染引擎”的开发。

Builder 接收到指令后,首先分析了当前的项目结构,检查了 package.json 以确认依赖是否已安装。然后,它创建了 Previewer 核心组件,并集成了 react-markdownremark-gfm 来实现 Markdown 的解析和渲染。

2.2. 预览容器组件

任务 2.1 完成后,AI 并未擅自继续,而是给出了下一步的建议,询问我们是继续开发“预览容器组件”还是“主题管理系统”。这种互动模式确保了开发节奏的可控性。得益于我们的项目规则制定。

我们选择继续开发预览容器组件。AI 随即创建了 PreviewContainer 组件,实现了预览头部、内容区域、玻璃拟态效果和响应式布局。

当任务 2.2 也完成后,它再次总结了成果,并创建了一个测试文档来验证功能。(注意,有时候 AI 会创建测试文档来验证,但验证完成后也不会删除,这种要么在制定项目规则时候,我们要求它删除,要么在任务完成后,我们手动删除。

查看代码结构,基本上是按照我们的项目规则来实现的。

2.3. 阶段成果预览

最后,我们打开预览页面,可以看到 Markdown 输入区域的内容已经被成功渲染到了预览区域,包括标题、列表、代码块等元素都已正确显示。这标志着我们的核心预览功能已经开发完成。


3. 阶段三:主题系统开发

在完成核心功能后,我们进入了 UI 和用户体验优化的阶段。本阶段将着重于开发主题系统,并展示如何通过与 AI 的多轮交互来修复错误和完善细节。

3.1. 开发主题系统与设置面板

我们首先向 Builder 下达了“任务 3.1: 主题管理系统”和“任务 3.2: 设置面板组件”的开发指令。这两个任务可以合并执行,也可以分开。

3.2. AI 辅助调试:从报错到修复

在 AI 完成初步开发后,我们启动预览,但页面直接报错了。这是一个非常真实的开发场景。我们可以直接将报错页面的截图反馈给 AI,让它来诊断和修复。

AI 迅速定位了问题:useTheme.js 文件包含了 JSX 语法,但文件扩展名却是 .js。它立刻将文件重命名为 useTheme.jsx,解决了这个崩溃问题。

3.3. AI 辅助迭代:从功能 Bug 到完善

解决了报错问题后,我们发现新功能存在 Bug:点击主题切换按钮,主题并不会改变。

同样,我们通过截图和文字描述“点击切换主题不会变化,还是‘极简白’”来向 AI 反馈这个问题。

AI 在接收到反馈后,立刻开始排查 ThemeSelector 组件的状态管理、事件处理以及 useTheme Hook 的实现逻辑,进而定位并修复了问题。

3.4. AI 辅助优化:精细化样式调整

最后,我们希望对预览样式进行微调,要求“H2 ~ H6 标题前面增加竖线,星号包括的文字颜色跟主题变化”。我们描述得越清晰,并辅以参考图,AI 理解和执行的效果就越好。

AI 准确地理解了我们的需求,并立刻着手修改 Previewer 组件的样式文件。

3.5. 阶段成果预览

经过多轮的开发、调试和优化,主题系统终于完美地呈现在我们面前。从最终的预览效果可以看到,不仅主题切换功能正常,标题样式也按照我们的要求得到了更新。


4. 阶段四:代码块增强

在开发过程中,我们经常会遇到需求变更或初期设想不周全的情况。本阶段将以“代码块”功能的开发为例,展示如何与 AI 协作,动态调整任务,并对细节进行打磨。

4.1. 初版实现与需求调整

我们首先向 Builder 下达了“任务 4.1: 代码块组件”的开发指令。

AI 完成初版开发后,我们发现效果并不符合最终预期。于是,我们向 AI 提出了更具体的需求:“代码块期望在所有主题下保持一致,使用 github-dark 风格的高亮主题,语言标识和自定义组件替换都不需要。”

这个场景演示了 AI 的一个重要能力:动态任务调整。我们可以随时根据实际情况修正任务描述,AI 会理解新的需求并更新 task_breakdown.md 文档,确保任务目标与我们的预期保持一致。

4.2. 执行优化后的任务

在任务描述更新并聚焦后,我们让 AI 重新执行“任务 4.2: 代码块集成”。

4.3. 细节打磨:精准移除 UI 元素

任务执行完成后,代码块的高亮风格已经符合要求,但其顶部依然显示了文件名和语言标识等我们不需要的 UI 元素。

此时,我们可以借助 Trae IDE 的“选择元素”功能,直接在预览界面中点击我们不想要的部分,添加到聊天窗口。Trae 会更快的、更准确的定位到对应的代码,并生成移除指令。这种“所见即所得”的交互方式,比用文字描述要精准和高效得多。

4.4. 最终效果预览

经过这一系列的调整和打磨,代码块组件最终达到了我们想要的简洁、统一的视觉效果。


5. 阶段五:响应式和视图模式

我们依次向 Builder 下达了“任务 5.1: 视图模式切换”和“任务 5.2: 响应式优化”的指令。

这个阶段的开发过程非常顺利,AI 准确地理解了我们的需求,在设置面板中加入了“手机”和“桌面”的视图模式切换器,并对整体布局、边距、字体大小等进行了响应式优化。

最终的预览效果也完全达到了我们的预期,应用能够在不同视图下完美适配。


总结

本篇以一个 Web 应用的完整开发过程为例,演示了如何通过五个阶段的任务拆解,利用 AI Agent 高效完成项目。文中重点展示了开发者角色的转变:从具体的编码工作,转变为通过下达指令、提供反馈(如截图、文字说明)来引导 AI,并结合 IDE 工具处理需求变更、修复错误,全面呈现了人机协作解决真实开发问题的流程。

这个五个阶段相对还好,没有太复杂的内容,AI 基本上也能理解,并完成任务。下一篇会有些难度!