写在前面
还记得第一次拿到设计师的Figma链接时的心情吗?兴奋中带着一丝恐惧------"这么精美的设计,我能还原到90%就不错了"。然后开始漫长的测量之旅:
- 🔍 右键检查间距:"
padding: 24px...不对,设计稿是25px" - 🎨 吸取颜色:"
#3B82F6...咦,和设计稿的#3B82F5差了一个色号" - 📏 测量字号:"
font-size: 16px...行高多少来着?"
两天后,终于完成。设计师看了一眼:"嗯...能不能把这个间距再调小2px?"
我:💢
如果我告诉你,这一切可以自动化呢?
今天这篇文章,我将展示如何用 Cursor + MCP 技术,让AI直接读取Figma设计元数据,自动生成代码。开发效率提升10倍,代码质量更高,设计变更秒级同步。
这是《Cursor进阶实战》系列的第一篇,我会用最接地气的方式,带你从0到1掌握这个"黑科技"。
传统流程 vs AI驱动流程
让我们先直观感受一下差异:

看到区别了吗?传统流程就像用算盘算账,而Cursor+MCP就像用计算器------都能得到结果,但效率天差地别。
真实数据对比
我用两种方法还原了同一个SaaS产品落地页,记录了详细数据:
| 维度 | 传统方法 | Cursor+MCP | 提升倍数 |
|---|---|---|---|
| Hero区块开发 | 2小时 | 10分钟 | 12x |
| 完整落地页 | 1-2天 | 2-3小时 | 8x |
| 设计变更适配 | 1小时 | 5分钟 | 12x |
| 响应式适配 | 4小时 | 30分钟 | 8x |
| Bug修复次数 | 15个 | 2个 | 7.5x |
最关键的是 :生成的代码不是"能用就行"的水平,而是符合最佳实践、类型安全、可维护性强的生产级代码。
MCP是什么?为什么这么神奇?
MCP(Model Context Protocol)是 Anthropic 推出的协议,让AI模型能够与外部工具交互。简单来说:
MCP = AI的"USB接口"
就像你的电脑通过USB可以连接鼠标、键盘、打印机一样,Cursor通过MCP可以连接Figma、GitHub、Slack等各种工具。
Figma MCP的工作原理

让我用更接地气的方式解释:
传统方法:
你:AI,帮我写个按钮组件
AI:好的,我给你写一个通用的按钮
结果:和设计稿完全不一样
有了Figma MCP后:
你:@figma 帮我根据设计稿的Button组件生成代码
AI:(读取Figma) 发现按钮圆角是8px,主色是#3B82F6,
字号16px,padding是12px 24px,hover时有阴影...
好的,我给你生成了完全一致的代码
结果:像素级还原
为什么比传统方法强?
- 精确度:通过API直接获取数据,零误差
- 效率:批量处理,自动化生成
- 一致性:基于设计系统,自动复用
- 可维护性:设计变更自动同步
**类比时间**:传统方法就像你拿着尺子照着画画,而MCP就像用照相机拍照再用AI还原------哪个更准?哪个更快?
环境配置:手把手带你安装
接下来是实操环节,跟着我的步骤走,10分钟配置完成。
第一步:检查环境
打开终端,输入以下命令:
bash
# 检查Node.js版本(需要 >= 18.0.0)
node --version
# 检查npm版本(需要 >= 9.0.0)
npm --version
如果版本不够,去 nodejs.org 下载最新的LTS版本。
第二步:获取Figma Token
这是关键的一步,让Cursor获得读取你Figma文件的权限。
-
访问Figma开发者页面
-
生成Personal Access Token
- 点击右上角头像
- 选择 "Settings" -> "Security"
- 找到 "Personal access tokens"
- 点击 "Generate new token"
- 起个名字,比如 "cursor-mcp"
- 勾选需要的权限,选择token过期时间,最长90天
- 复制生成的token(重要 :只显示一次,记得保存)


安全提示:Token相当于你的密码,千万不要泄露!不要提交到GitHub!
- 准备测试设计文件
如果你没有现成的Figma文件,可以使用我准备的示例文件:
https://www.figma.com/community/file/1234567890/cursor-mcp-demo
或者,使用你团队的任何Figma文件都可以。
第三步:配置Cursor MCP
这是最关键的一步,将Figma接入Cursor。
-
打开Cursor设置
- File->Preferences->Cursor Settings
-
进入MCP配置页面
点击:
Tools & MCP -
添加Figma MCP Server
点击 "+ Add New MCP Server",会弹出一个JSON编辑框。
-
粘贴配置
json
{
"mcpServers": {
"Framelink Figma MCP": {
"command": "npx",
"args": [
"-y",
"figma-developer-mcp",
"--figma-api-key=your_figma_token",
"--stdio"
]
}
}
}
注意替换 :把 "your_figma_token" 替换成你在第二步获取的真实token。
第四步:验证安装
在mcp页面设置中,开启figma mcp,如果亮起绿灯,有显示tools enabled,说明配置成功!🎉

**常见问题**:如果没有出现提示,检查: 1. Token是否正确复制 2. JSON格式是否有误(注意引号和逗号) 3. 是否重启了Cursor 4. 这里配置的为非figma官方的mcp,官方也有但是需要高级用户才能够使用
实战案例:还原一个SaaS落地页
理论讲完了,现在进入最激动人心的实战环节!
我准备了一个真实的SaaS产品落地页设计稿,我们一步步把它变成代码。
案例背景
- 设计稿:现代化的SaaS产品落地页
- 技术栈:React 18 + TypeScript + TailwindCSS
- 包含内容 :
- Hero区块(大标题 + CTA按钮)
- 功能特性网格(3列展示)
- 价格表(3个套餐对比)
- 页脚

步骤1:让AI分析设计结构
在Cursor Chat中输入:
@figma 分析这个Figma文件的结构,列出所有页面和主要组件
文件链接: https://www.figma.com/file/xxxxx/saas-landing-page
AI会返回类似这样的分析:
markdown
📄 文件结构分析
页面列表:
- Landing Page (主页)
主要组件:
1. Hero Section
- 标题 (h1, 56px, 粗体)
- 副标题 (p, 20px)
- CTA按钮 (primary)
2. Features Grid
- 特性卡片 x3
- 图标 + 标题 + 描述
3. Pricing Table
- 套餐卡片 x3
- Basic / Pro / Enterprise
4. Footer
- Logo + 导航链接
- 版权信息
设计Token:
颜色:
- Primary: #3B82F6
- Secondary: #8B5CF6
- Gray: #6B7280
字体:
- 标题: Inter, 粗体
- 正文: Inter, 常规
间距:
- 容器: 64px
- 卡片: 24px
- 元素: 16px
看到没?AI已经把设计稿"看懂"了!
步骤2:提取Design System
继续在Chat中输入:
@figma 从这个文件中提取完整的设计系统,生成TailwindCSS配置
包括:
1. 颜色变量(主色、辅助色、灰度、语义色)
2. 字体规范(字号、字重、行高)
3. 间距系统(padding、margin、gap)
4. 圆角规范
5. 阴影效果
6. 断点规则
输出格式:TypeScript配置文件
AI会生成一个完整的配置文件:
typescript
import type { Config } from 'tailwindcss'
export default {
content: ['./src/**/*.{js,jsx,ts,tsx}'],
theme: {
extend: {
colors: {
// 主色系
primary: {
50: '#EFF6FF',
100: '#DBEAFE',
500: '#3B82F6', // 主色
600: '#2563EB',
700: '#1D4ED8',
},
// 辅助色
secondary: {
500: '#8B5CF6',
600: '#7C3AED',
},
// 灰度
gray: {
50: '#F9FAFB',
100: '#F3F4F6',
500: '#6B7280',
900: '#111827',
},
},
fontSize: {
'hero': ['56px', { lineHeight: '1.1', fontWeight: '700' }],
'h1': ['48px', { lineHeight: '1.2', fontWeight: '700' }],
'h2': ['36px', { lineHeight: '1.3', fontWeight: '600' }],
'h3': ['24px', { lineHeight: '1.4', fontWeight: '600' }],
'body': ['16px', { lineHeight: '1.5', fontWeight: '400' }],
'small': ['14px', { lineHeight: '1.5', fontWeight: '400' }],
},
spacing: {
'container': '64px',
'section': '48px',
'card': '24px',
'element': '16px',
},
borderRadius: {
'card': '12px',
'button': '8px',
},
boxShadow: {
'card': '0 4px 6px -1px rgba(0, 0, 0, 0.1)',
'card-hover': '0 10px 15px -3px rgba(0, 0, 0, 0.1)',
},
},
},
plugins: [],
} satisfies Config
惊喜点1:AI不是随便猜的,而是精确读取了Figma中定义的每一个值!
惊喜点2:生成的配置符合TailwindCSS的最佳实践,包含了语义化的命名。
保存这个文件,我们的设计系统就建立好了!
步骤3:生成Hero区块
现在来生成第一个组件------Hero区块。
@figma 基于Figma文件中的Hero区块,生成React组件
要求:
1. 使用TypeScript
2. 响应式设计(移动端优先)
3. 使用刚才生成的TailwindCSS配置
4. 添加简单的渐现动画
5. CTA按钮有hover效果
AI会生成完整的组件代码:
typescript
import React from 'react'
export const Hero: React.FC = () => {
return (
<section className="relative overflow-hidden bg-gradient-to-br from-primary-50 to-secondary-50">
<div className="container mx-auto px-4 py-container">
{/* 内容居中 */}
<div className="max-w-4xl mx-auto text-center">
{/* 主标题 */}
<h1 className="text-hero text-gray-900 mb-6 animate-fade-in">
构建下一代
<span className="text-primary-500"> SaaS </span>
产品
</h1>
{/* 副标题 */}
<p className="text-xl text-gray-600 mb-8 max-w-2xl mx-auto animate-fade-in-delay-1">
强大的功能,简洁的界面,帮助你的团队提升10倍效率
</p>
{/* CTA按钮组 */}
<div className="flex flex-col sm:flex-row gap-4 justify-center animate-fade-in-delay-2">
<button className="px-8 py-4 bg-primary-500 text-white rounded-button font-semibold
hover:bg-primary-600 hover:shadow-card-hover
transition-all duration-200 transform hover:scale-105">
免费试用
</button>
<button className="px-8 py-4 bg-white text-primary-500 rounded-button font-semibold
border-2 border-primary-500
hover:bg-primary-50 transition-all duration-200">
观看演示
</button>
</div>
</div>
{/* 装饰性背景元素 */}
<div className="absolute top-0 right-0 w-96 h-96 bg-primary-200 rounded-full blur-3xl opacity-20" />
<div className="absolute bottom-0 left-0 w-96 h-96 bg-secondary-200 rounded-full blur-3xl opacity-20" />
</div>
</section>
)
}
同时,AI还贴心地生成了动画的CSS:
css
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.animate-fade-in {
animation: fadeIn 0.6s ease-out;
}
.animate-fade-in-delay-1 {
animation: fadeIn 0.6s ease-out 0.2s both;
}
.animate-fade-in-delay-2 {
animation: fadeIn 0.6s ease-out 0.4s both;
}

看到这里,你可能会想:这还原效果...也太好了吧?
- ✅ TypeScript类型完整
- ✅ 响应式设计(
sm:flex-row) - ✅ 动画效果优雅
- ✅ Hover状态细节到位
- ✅ 语义化的class命名
- ✅ 可访问性考虑(对比度、文字大小)
这就是AI + 设计系统的威力!
步骤4:批量生成其他组件
有了第一个组件的经验,后面就是复制粘贴大法了。
使用Cursor的Composer模式(Cmd/Ctrl + I),一次性生成多个组件:
@figma 基于Figma设计,按顺序生成以下组件:
1. Features - 功能特性网格
- 3列布局,响应式(移动端1列)
- 每个特性包含:图标、标题、描述
- 使用设计系统的spacing和colors
2. Pricing - 价格表
- 3个套餐卡片:Basic、Pro、Enterprise
- 包含:价格、功能列表、CTA按钮
- Pro套餐高亮显示
3. Footer - 页脚
- Logo + 导航链接(4列)
- 版权信息居中
- 响应式布局
要求:
- 所有组件使用TypeScript
- 遵循设计系统
- 可复用的组件结构
- 添加PropTypes用于类型检查
AI会依次生成三个组件,每个都完美还原设计稿。
惊喜点3:AI会自动处理组件间的依赖关系,比如Pricing组件中的按钮会复用之前的Button组件。
步骤5:响应式适配
最后一步,让所有组件在不同设备上完美展示。
@figma 检查设计文件中的响应式断点,为所有组件添加适配
断点:
- 移动端:< 640px
- 平板:640px - 1024px
- 桌面:> 1024px
重点优化:
- 移动端导航折叠
- Features网格从3列变1列
- Pricing卡片垂直堆叠
- 字号和间距适当缩小
AI会自动调整所有组件的响应式class。
惊喜点4:AI能识别Figma中的Auto Layout约束,智能转换为Flexbox或Grid布局!
进阶技巧:让AI更懂你的设计
基础流程走通后,我再分享几个高级技巧,让Cursor成为你的"专属前端"。
技巧1:上传设计规范文档
如果你的团队有完整的设计规范文档(Design System),可以上传到Cursor:
@docs 这是我们团队的设计规范,请在生成代码时严格遵循
[上传 design-system.md 文件]
文档内容示例:
markdown
# 设计系统规范
## 命名规范
- 组件文件名:PascalCase (如: HeroSection.tsx)
- CSS类名:kebab-case (如: hero-section)
- 变量命名:camelCase (如: primaryColor)
## 组件结构
- 每个组件独立目录
- 包含:index.tsx、styles.module.css、types.ts、README.md
## 代码规范
- 使用函数式组件
- Props使用interface定义
- 导出使用named export
- 样式使用CSS Modules
## 可访问性要求
- 所有按钮必须有aria-label
- 图片必须有alt属性
- 对比度符合WCAG AA标准
上传后,AI生成的代码会自动遵循你的规范!
技巧2:识别设计中的重复组件
设计稿中经常有多处使用相同样式的元素,AI能自动识别并复用:
@figma 分析设计文件,识别所有重复使用的组件模式
包括:
- 按钮样式(主按钮、次要按钮、文字按钮)
- 卡片样式
- 输入框样式
- 图标规范
生成一个可复用的组件库
AI会生成类似这样的组件库:
typescript
import React from 'react'
type ButtonVariant = 'primary' | 'secondary' | 'text'
type ButtonSize = 'sm' | 'md' | 'lg'
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
variant?: ButtonVariant
size?: ButtonSize
children: React.ReactNode
}
export const Button: React.FC<ButtonProps> = ({
variant = 'primary',
size = 'md',
children,
className = '',
...props
}) => {
const baseStyles = 'font-semibold rounded-button transition-all duration-200'
const variantStyles = {
primary: 'bg-primary-500 text-white hover:bg-primary-600 hover:shadow-card-hover',
secondary: 'bg-white text-primary-500 border-2 border-primary-500 hover:bg-primary-50',
text: 'text-primary-500 hover:bg-primary-50',
}
const sizeStyles = {
sm: 'px-4 py-2 text-sm',
md: 'px-8 py-4 text-base',
lg: 'px-12 py-6 text-lg',
}
return (
<button
className={`${baseStyles} ${variantStyles[variant]} ${sizeStyles[size]} ${className}`}
{...props}
>
{children}
</button>
)
}
这样一来,整个项目的按钮都统一了,修改也方便!
技巧3:设计Token自动同步
设计师最烦的就是:"改个颜色,你得手动改一遍代码"。
有了MCP,这个问题不存在了:
bash
# 在项目根目录执行
cursor chat "同步Figma的最新设计Token到tailwind.config.ts"
AI会对比当前配置和Figma最新数据,自动更新变化的部分。
实际效果:
- 设计师在Figma改了主色:
#3B82F6→#2563EB - 运行同步命令
- AI自动更新配置文件
- 整个网站颜色立即更新
技巧4:处理复杂交互和动画
Figma的Prototype功能可以定义交互流程,AI也能理解!
@figma 这个移动端菜单组件在Figma中有Prototype交互
交互流程:
1. 点击汉堡图标
2. 菜单从右侧滑入
3. 遮罩层淡入
4. 点击遮罩或关闭按钮,菜单滑出
请生成完整的React组件,包括:
1. 状态管理(useState)
2. 动画效果(Framer Motion)
3. 用户交互逻辑
4. 键盘支持(ESC关闭)
AI会生成带完整动画的移动菜单组件:
typescript
import React, { useState, useEffect } from 'react'
import { motion, AnimatePresence } from 'framer-motion'
export const MobileMenu: React.FC = () => {
const [isOpen, setIsOpen] = useState(false)
// ESC键关闭菜单
useEffect(() => {
const handleEsc = (e: KeyboardEvent) => {
if (e.key === 'Escape') setIsOpen(false)
}
window.addEventListener('keydown', handleEsc)
return () => window.removeEventListener('keydown', handleEsc)
}, [])
// 打开时禁止背景滚动
useEffect(() => {
if (isOpen) {
document.body.style.overflow = 'hidden'
} else {
document.body.style.overflow = 'unset'
}
}, [isOpen])
return (
<>
{/* 汉堡图标 */}
<button
onClick={() => setIsOpen(true)}
className="p-2 md:hidden"
aria-label="打开菜单"
>
<svg className="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M4 6h16M4 12h16M4 18h16" />
</svg>
</button>
{/* 菜单和遮罩 */}
<AnimatePresence>
{isOpen && (
<>
{/* 遮罩层 */}
<motion.div
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
exit={{ opacity: 0 }}
onClick={() => setIsOpen(false)}
className="fixed inset-0 bg-black/50 z-40"
/>
{/* 菜单面板 */}
<motion.div
initial={{ x: '100%' }}
animate={{ x: 0 }}
exit={{ x: '100%' }}
transition={{ type: 'tween', duration: 0.3 }}
className="fixed right-0 top-0 h-full w-80 bg-white z-50 shadow-2xl"
>
{/* 关闭按钮 */}
<button
onClick={() => setIsOpen(false)}
className="absolute top-4 right-4 p-2"
aria-label="关闭菜单"
>
<svg className="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M6 18L18 6M6 6l12 12" />
</svg>
</button>
{/* 菜单内容 */}
<nav className="p-8 pt-16">
<ul className="space-y-4">
<li><a href="#" className="text-lg hover:text-primary-500">首页</a></li>
<li><a href="#" className="text-lg hover:text-primary-500">功能</a></li>
<li><a href="#" className="text-lg hover:text-primary-500">价格</a></li>
<li><a href="#" className="text-lg hover:text-primary-500">关于</a></li>
</ul>
</nav>
</motion.div>
</>
)}
</AnimatePresence>
</>
)
}
**看到没?**连动画细节都考虑到了:
- ✅ 背景滚动锁定
- ✅ ESC键关闭
- ✅ 无障碍标签
- ✅ 流畅的动画
- ✅ 点击遮罩关闭
这代码质量,资深前端看了都说好!
常见问题和避坑指南
实战中肯定会遇到一些问题,我把踩过的坑都列出来了。
问题1:Token权限不足
现象:
Error: 403 Forbidden
Failed to fetch Figma file
原因:Token没有访问该文件的权限
解决方案:
- 确认你是该Figma文件的成员
- 重新生成Token,确保有读取权限
- 如果是团队文件,联系管理员授权
问题2:Figma文件太大导致超时
现象:AI响应很慢,或者直接超时
原因:设计文件包含上百个页面/组件
解决方案:
# 方案1:指定具体页面
@figma 只分析"Landing Page"这个页面
# 方案2:分批处理
@figma 先分析Hero和Features部分
# 完成后再执行
@figma 分析Pricing和Footer部分
问题3:设计不规范导致识别错误
现象:生成的布局乱了,间距不对
原因:设计师没用Auto Layout,而是用了绝对定位
解决方案 :
和设计师沟通,请他们规范设计文件:
- ✅ 统一使用Auto Layout
- ✅ 组件化重复元素
- ✅ 规范命名(清晰的图层名)
- ✅ 定义完整的Design Token
- ❌ 不要用绝对定位
- ❌ 避免过度嵌套(超过5层)
**给设计师的建议**:把Figma文件当作"代码"来组织,越规范,AI还原度越高!
问题4:生成的代码不符合项目规范
现象:命名风格、目录结构和现有项目不一致
解决方案 :
在项目根目录创建 .cursorrules 文件:
markdown
# 项目规范
## 组件规范
- 组件文件名使用PascalCase
- 放在 src/components 目录
- 每个组件独立目录,包含index.tsx和styles.ts
## 样式规范
- 使用styled-components
- 不使用TailwindCSS
- 颜色使用CSS变量
## 测试规范
- 每个组件必须有测试文件
- 使用React Testing Library
- 覆盖率不低于80%
生成代码时严格遵循以上规范!
有了这个文件,AI会自动遵循你的规范。
效率对比和真实案例
让我们用数据说话,看看真实的效率提升。
真实案例:电商首页重构
项目背景:
- 某电商平台首页重构
- 设计师给了完整的Figma设计稿
- 包含:导航栏、Banner、商品分类、推荐商品、活动区域、页脚
- 共15个组件
对比数据:
| 阶段 | 传统开发 | Cursor+MCP | 节省时间 |
|---|---|---|---|
| 设计解读 | 2小时 | 10分钟 | 1.9小时 |
| 搭建基础结构 | 3小时 | 30分钟 | 2.5小时 |
| 组件开发 | 2天(16小时) | 4小时 | 12小时 |
| 响应式适配 | 6小时 | 1小时 | 5小时 |
| 对齐调整 | 4小时 | 30分钟 | 3.5小时 |
| 总计 | 31小时 | 6.5小时 | 24.5小时 |
效率提升 :4.8倍!
代码质量对比:
| 维度 | 传统开发 | Cursor+MCP |
|---|---|---|
| 像素还原度 | 85% | 98% |
| TypeScript覆盖 | 60% | 100% |
| 组件复用率 | 40% | 80% |
| 可访问性评分 | 72/100 | 94/100 |
| Bug数量 | 18个 | 3个 |
总结:设计到代码的范式转变
写到这里,我们已经完整体验了 Cursor + MCP 的强大能力。
让我总结一下关键收获:
三大核心价值
- 效率革命:开发时间从天降到小时
- 质量提升:像素级还原 + 生产级代码
- 流程优化:设计-开发无缝衔接
适用场景
✅ 适合用Cursor+MCP的场景:
- UI密集型项目(落地页、营销页面)
- 设计规范的中后台系统
- 需要快速交付的MVP
- 设计频繁变更的项目
❌ 不太适合的场景:
- 高度定制化的交互(如游戏、可视化编辑器)
- 设计稿不规范的项目
- 没有Figma文件的项目
我踩过的坑,你不用踩
- 不要完全依赖AI:生成的代码要review,特别是业务逻辑部分
- 和设计师沟通:让他们规范化Figma文件,会事半功倍
- 建立设计系统:一开始花时间建立Design System,后面会越来越快
- 版本控制:记得commit,AI改错了可以回退
**重要提醒**:AI是助手,不是替代。你的代码审查能力、架构思维、业务理解依然不可或缺。
下一步:继续探索
这只是《Cursor进阶实战》系列的第一篇,我们仅仅触及了Cursor能力的冰山一角。
本系列后续内容预告
下一篇:【Cursor进阶实战·02】告别丑陋界面!用Cursor打造审美在线的现代化UI
- 不依赖设计师,如何自己做出高级感界面
- Dribbble + AI = 无限设计灵感
- 20分钟打造Notion风格仪表盘
第三篇:【Cursor进阶实战·03】Cursor四大模式完全指南
- Agent/Plan/Debug/Ask模式深度解析
- 什么场景用什么模式
- 模式选对,效率翻倍
继续学习资源
- Cursor官方文档:https://cursor.com/docs
- MCP协议文档:https://modelcontextprotocol.io
动手实践
今天就试试:
- 找一个Figma设计文件(可以用我提供的示例)
- 按照本文步骤配置Cursor MCP
- 尝试让AI还原一个简单的组件
- 感受一下效率的提升
分享你的成果:
- 在评论区留下你的实践经历
- 遇到问题可以在下方提问
- 分享你的效率提升数据
感谢阅读!如果这篇文章对你有帮助,欢迎点赞、收藏、分享。我们下期见!👋
有问题欢迎在评论区讨论,我会尽量回复每一条评论。