兄弟们,今天我们来介绍 v0.dev:这是一个 AI 前端代码生成工具,一句话、一张图就可以帮你生成各种前端页面或组件。我们将在本文介绍如何使用它来模拟实际项目的迭代开发,并部署项目给大家试用,以及分享全部提示词和源代码。
本教程视频版本可以直接观看:
1、20 秒完成飞机大战/俄罗斯方块开发
v0.dev 这工具好用吗?
我们可以先想一个问题:让你开发一个网页版的飞机大战游戏,你要多久?
反正有了 v0.dev,我一个前端新手只要 20 秒:
第一步,在浏览器打开 https://v0.dev/chat
;第二步,在输入框输入 帮我生成一个飞机大战游戏
,回车。
就这!手速快的兄弟还能更快。不信你可以直接用下面链接玩一下试试:
https://b_2LO7jvhXtW8.v0.build/
飞机大战没有美工,画面有点简陋,但是功能是没毛病的。照这样来看,再撸一个俄罗斯方块也不在话下吧,说干就干:在输入框输入帮我生成一个俄罗斯方块游戏
,回车。分分钟就出来了:
同样的,可以试玩用下面的链接玩一下试试:
https://b_nF2QrBEQbMQ.v0.build/
看到这里,我们夸 v0.dev 一句「5 分钟搞定 1 天的工作量,颠覆传统前端开发」不为过吧?
2、迭代开发一个极简版小红书前端
有的朋友看到这里,可能会说 v0.dev 看起来是很厉害,不过开发上面这种简单的游戏,需求都比较简单明确,而现实开发中,需求是迭代且多变的,它能胜任吗?
接下来,我们就来逐步给大家展示如何使用 v0.dev 迭代开发一个极简版小红书的前端页面。看看它到底功力如何?
2.1、主体页面
第一步,我们打开小红书页面,给它截个图:
第二步,打开 v0.dev,将刚才的截图拖入对话框来上传,然后输入提示词:
请使用 react 将上图转化为前端页面代码。
开始生成页面代码。
等待代码生成完成,我们点击放大就可以直接看到页面效果了。
可以看到这里生成的页面基本上还原了我们刚才截图的页面结构,但是各种按钮还不支持点击,内容则是使用占位图和占位文案。
2.2、侧边栏
我们接着输入新的提示词来修改:
将侧边栏按顺序改为:探索、订阅、我的。并且,点击“订阅”和“我的”tab时,内容区域更新内容为“目前内容为空”。
等待代码重新生成完成,我们就得到了 v2 版本的页面
可以看到侧边栏的 tab 已经可以点击并且更新对应内容,但是顶部内容分类还不支持点击,我们来继续迭代修改。
2.3、内容分类栏
我们继续输入新的提示词:
修改“推荐”、“教育”这个区域对应的内容分类 tab 栏,当内容区域向上滚动时,该区域保持吸顶不动。
这样给顶部分类栏增加了吸顶功能。
接着,我们通过提示词来增加分类栏的点击功能:
修改“推荐”、“教育”这个区域对应的内容分类 tab 栏,当点击不同 tab 时更新内容区的卡片内容,并更新 tab 的样式为选中状态。
这次我们可以看到,顶部分类栏已经支持点击并更新对应内容了。可见,v0.dev 准确地理解并实现了我们的需求。
2.4、分页加载
分页加载和滚动加载更多内容是很多内容平台的基本功能,我们这里当然也需要。
接下来,我们通过提示词为内容区增加分页加载功能:
修改内容区加载数据的逻辑,支持分页加载。当页面向上滚动时,自动加载更多内容。
这次 v0.dev 依然准确的实现了我们的需求,我们的页面获得了分页加载更多内容的能力。
2.5、订阅页
现在,「订阅」和「我的」页面还是空的,接下来,我们给它们增加内容。
我们继续输入提示词:
修改点击“订阅” tab 后对应的内容区域,内容为卡片,样式风格和“探索” tab 对应的内容区域类似,同时也支持分页加载,当页面向上滚动时,自动加载更多内容。
这次依然很顺利的实现了我们的需求,「订阅」tab 有了内容并支持分页加载。
2.6、我的页
接下来,我们给「我的」tab 增加内容。我们输入提示词:
修改点击“我的”tab后对应的内容区域,内容为列表样式,包括:账户信息、订阅状态、隐私政策、使用条款、联系我们、退出账户、删除账户栏目。
打开页面可以看到「我的」tab 已经增加了相应的内容,但是这里出现了一个小问题:页面底部多了一个不需要的「加载中」的文案。
2.7、修 bug
我们通过提示词来修复这个问题:
修改点击“我的” tab 后对应的内容区域,这里的内容区域不需要分页加载和加载更多的功能。
重新生成代码后,我们可以看到,这个问题已经被解决。
2.8、提示词、试用、源码
所有提示词:
请使用 React 将上图转化为前端页面代码。
将侧边栏按顺序改为:探索、订阅、我的。并且,点击“订阅”和“我的”tab时,内容区域更新内容为“目前内容为空”。
修改“推荐”、“教育”这个区域对应的内容分类 tab 栏,当内容区域向上滚动时,该区域保持吸顶不动。
修改“推荐”、“教育”这个区域对应的内容分类 tab 栏,当点击不同 tab 时更新内容区的卡片内容,并更新 tab 的样式为选中状态。
修改内容区加载数据的逻辑,支持分页加载。当页面向上滚动时,自动加载更多内容。
修改点击“订阅”tab后对应的内容区域,内容为卡片,样式风格和“探索”tab对应的内容区域类似,同时也支持支持分页加载,当页面向上滚动时,自动加载更多内容。
修改点击“我的”tab后对应的内容区域,内容为列表样式,列表行数固定,包括:账户信息、订阅状态、隐私政策、使用条款、联系我们、退出账户、删除账户栏目。
修改点击“我的”tab后对应的内容区域,这里的内容区域不需要分页加载和加载更多的功能。
极简小红书 v8 版本代码:
你可以使用下面的链接试用一下这个极简版小红书,通过页面的 Fork 功能就能获得页面全部源码:
https://b_aOrYvbeSudq.v0.build/
3、小结
到这里,我们这个教程就告一段落了。
可以看到,v0.dev 通过对话方式支持了开发迭代,每个迭代它都会生成新版本的代码,可以方便大家回溯,因此能够很好地应对实际开发中的需求变化。
以前可能需要一个前端开发 1 天工作量的需求,在 v0.dev 的帮助下,几分钟就能搞定了。
当然,有的朋友可能会说:生成的代码是单文件,根本没考虑项目架构设计;代码没有接入后端服务接口,只能算是个 demo 而已。这些问题,我们将在后续的教程中解决。为了保持联系,不妨关注一下我们:
谢谢大家的阅读,教程对你有用的话,记得点赞、收藏、关注哦,下次见。