掘金 人工智能 前天 21:44
我是如何让AI帮我还原设计稿的
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文分享了作者在工作中如何利用AI辅助前端开发,特别是通过定义伪DOM结构和Prompt规则,让AI生成对应的真实DOM。文章强调了在UI稿的基础上,结合组件库和明确的Prompt,可以高效地还原设计稿。作者详细介绍了Prompt的编写规则,包括tag、class、child、style、text等属性的定义,以及React技术栈下的DOM生成示例。文章还提到了如何将规则设置为编辑器系统规则,以及定义“简洁写法”以提高效率。作者最后强调了不要过度依赖AI熟悉组件库,而应专注于确定的Prompt编写。

💡 作者通过定义伪DOM结构,结合Prompt规则,指导AI生成真实的DOM结构,以辅助前端开发。

✅ 伪DOM结构包含tag、class、child、style、text等属性,用于控制生成的标签类型、样式类名、子元素、样式代码和文本元素。

👨‍💻 作者详细阐述了React技术栈下,基于伪DOM生成真实DOM的规则,包括tag、class、child等属性的应用,以及text与child属性同时存在时的渲染顺序。

🚀 作者建议将规则设置为编辑器系统规则,并定义“简洁写法”,以提高AI生成DOM的效率,从而加速设计稿还原过程。

⚠️ 作者提醒前端开发者不要过度依赖AI熟悉组件库,应专注于编写确定的Prompt,从而更有效地利用AI辅助前端开发。

Hello大家好,好久没写文章了,今天抽空来写一下在工作中我是如何运用AI的。

根据UI稿,让AI生成对应的DOM。这里要思考以下几点:

所以为了能让AI还原设计稿,这个时候,虚拟DOM派上用场了。让AI根据特定的伪DOM生成特定的真实DOM。那生成规则是什么?这个时候就要说到Prompt了。

以下Prompt是我工作中,真实沉淀出来的(只展示一部分,大家可以任意扩展),生成的dom也是符合预期的。

# 说明当前规则只适用于用户输入的prompt明确的说明了要根据伪dom生成真实dom,否则,当前规则不启用。# 伪dom结构{    tag:,    class,    child,    style,    text,}属性说明:- tag   不可省略,主要用于控制生成的标签类型- class 可省略,主要用于控制标签对应的样式类名- child 可省略,主要用于生成当前标签的子元素- style 可省略,主要用于生成当前标签对应的样式代码- text  可省略,主要用于生成当前标签对应的文本元素# 规则一如果当前用户明确要生成真实的dom,请检查用户输入的伪dom结构是否满足定义的结构,如果用户给出的伪dom结构不满足定义,或者用户没有给出伪dom结构,则终止任务,并给出以下提示:"请给出一个符合规则定义的伪dom结构,具体属性请参考规则说明。"# 规则二满足规则一的情况下,请检查用户是否明确了技术栈(react、vue、html),如果没有指明技术栈,请终止当前任务,并给出以下提示:“请明确相应的技术栈,否则会影响dom的生成,比如class属性。”# React满足规则二的情况下,如果用户输入的prompt里明确了技术栈是React,则根据以下规则去生成真实DOM。## 规则三此规则是最基础的生成dom的规则,tag对应的值是什么,真实dom的标签就是什么,示例如下(要求举一反三):伪dom如下:{    tag: div,    text: 这是一段描述}则应该生成以下真实dom<div>这是一段描述</div>## 规则四此规则用于生成class类名。示例如下(要求举一反三):伪dom如下:{    tag: div,    text: 这是一段描述,    class: class1}则生成的真实dom如下:<div className='class1'>这是一段描述</div>-----------------------------------------------------如果class的值是数组的形式,则类名的生成顺序与写法保持一致。示例如下(要求举一反三):伪dom如下:{    tag: div,    class: [class2, class1]}则生成的真实dom如下:<div className='class2 class1'></div>## 规则五此规则用于生成相应的子元素。child的值必须是一个数组类型的,同时生成顺序与写法顺序保持一致。伪dom如下(要求举一反三):{    tag: div,    class: class1,    child: [        {            tag: span,            text: span子元素,            class: class1-1        },        {            tag: div,            text: class子元素,            class: class1-2        }    ]}则生成的真实dom如下:<div className='class1'>    <span className='class1-1'>span子元素</span>    <div className='class1-2'>class子元素</div></div>------------------------------------------------------如果text属性与child属性同时存在,则渲染顺序与写法保持一致。伪dom如下(要求举一反三):{    tag: div,    child: [        {            tag: span,            text: span子元素        }    ],    text: 这是一段描述}则生成的真实dom如下:<div>    <span>span子元素</span>    这是一段描述</div>

以上只是罗列了一部分规则,这样当我们拿到UI稿的时候,其实脑海里就已经存在了dom结构,我们只需要把伪dom结构写出来,然后让Agent帮我们自动生成对应的dom即可。

有人会说,你这样似乎也没有提高效率,好像也没节省时间。

嗯,如果是这样的话,是否节省时间就不好说了。

但是如果你能做到以下2点,那还原设计稿的效率将会直接起飞:

最后,前端同仁们,不要执着于让AI去熟悉组件库了,因为目前的AI只能干确定的事情,那什么又是确定的事情呢,那就是确定的prompt,千万不要被营销迷了眼~~

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

AI 前端开发 伪DOM 真实DOM Prompt
相关文章