ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

为什么 AI 写前端时,总是优先选择 React,而不是 Vue?

为什么 AI 写前端时,总是优先选择 React,而不是 Vue? 如果你在过去几个月里高强度使用过Codex、Cursor或者是Claude Code等 AI 编程工具你一定会察觉到一个让国内前端开发者极度不适的现象当你扔给 AI 一张设计图或者一段自然语言需求让它帮你生成前端组件时如果不做任何额外的Prompt限制它默认吐出来的代码永远是React加上Tailwind CSS。作为一个Vue开发者你必须在提示词里反复强调请使用Vue3和script setup语法。但即便如此AI 生成的Vue代码里也经常会诡异地夹杂着className甚至试图在template模板层里写map映射。在框架使用者眼里这可能又是一场框架优劣的口水战。但我想讲的是大模型这种压倒性的框架偏好其实暴露出的是底层技术架构的根本性差异。只是因为训练语料多吗当你抛出这个问题时绝大多数人给出的答案是因为React拥有全球最庞大的生态在GitHub上的开源项目和代码语料远超Vue。大模型吃进去的React代码多吐出来的自然也就多。这句话本身没错但这只是一层极其懒惰的表象解释‍♂️。大模型本质上是一个基于概率的Token预测机器。它在生成代码时不仅受语料数量的影响更受语言结构AST纯粹性的制约。真正让 AI 对Vue感到吃力并且频繁产出幻觉的是两者在底层设计哲学上的巨大鸿沟。JS 纯粹性与 DSL 的认知负担在我们人类程序员眼里Vue极度优雅。它的单文件组件SFC把template、script和style物理隔离逻辑清晰极度符合人类对网页结构的直觉认知。但在大模型的眼里Vue其实是一个极其复杂的 DSL领域特定语言。大模型最擅长预测什么是标准的、图灵完备的常规编程语言比如纯JavaScript或Python。React的JSX表面上看起来是标签但在AST抽象语法树层面它本质上就是纯粹的JavaScript函数调用。核心的控制流if/else、map、switch完全遵循原生JS的语法规则。大模型在预测下一个Token时上下文是高度连贯和内聚的。// 在大模型的使用这根本不是 HTML这只是一个标准的 JS 纯函数 export function UserList({ users }) { return ( ul {users.length 0 ? users.map(u li key{u.id}{u.name}/li) : li暂无数据/li} /ul ); }而Vue则不同。大模型在生成Vue代码时必须在脑海里强行维护两套完全割裂的上下文 一套是基于HTML扩展的模板语法v-if、v-for、v-model另一套是下方的script setup响应式逻辑。!-- 大模型在生成长组件时极其容易在这里的模板层丢失数据映射 -- template ul template v-ifuserList.length 0 li v-foru in userList :keyu.id{{ u.name }}/li /template li v-else暂无数据/li /ul /template script setup langts import { ref } from vue; // 当代码超过 300 行AI 很容易忘了上面绑定的变量到底是 users 还是 userList const userList ref([]); /script当上下文长度超过几百行后大模型极容易在template和script之间的变量绑定上产生灾难级的幻觉。它可能会在模板里写出一个未经声明的ref变量或者在脚本里写了一堆逻辑却忘了通过模板指令去驱动视图。人类更擅长处理结构隔离而机器更擅长处理逻辑同源️。那组件物理拆分的阻力是什么在大模型的日常协作中最深水区的痛点其实是代码的重构与拆分。大模型写代码有一个通病喜欢把所有的逻辑都塞进一个巨大的文件里。当这个缝合怪组件膨胀到上千行时你必须命令它进行拆分。在React里拆分组件的成本极低。大模型只需要在同一个文件里顺手多写几个首字母大写的Function就可以直接完成细粒度的逻辑抽离。这种按需内联拆分的能力极其契合 AI 的线性文本生成逻辑。但在Vue的生态里创建一个新组件通常意味着必须在文件系统里新建一个.vue文件并且要处理繁琐的import路径、父子组件props传递和emits事件分发。多文件并发生成和底层路径映射恰恰是当前所有 AI 编程工具最容易翻车的软肋。这直接导致了 AI 在写大型Vue项目时代码极易走向失控。前端组件的文本化复制粘贴最后我们无法回避整个前端组件库生态的残酷站队。在 AI 自动生成 UI 的时代像Shadcn UI这种纯粹基于Tailwind CSS和Radix UI的方案成为了绝对的统治者。为什么因为它的组件根本不是作为一个npm依赖包黑盒存在的而是可以直接被大模型阅读、复制并内联修改的纯文本源码。这种代码即 UI的模式让 AI 可以直接透视并定制组件的每一个像素。而Vue生态里占据主导地位的如Element Plus或Ant Design Vue依然是沉重的全局安装包。大模型无法透视黑盒内部的代码在遇到定制化需求时只能绝望地去瞎猜文档配置参数。在做技术选型时我们往往会夹杂着太多关于好与坏的执念。如果是完全由纯开发者主导开发Vue极低的心智负担、清晰的关注点分离依然是中大型业务团队稳盘的绝佳利器。但如果我们正在迈入一个由 AI 主导代码生成的新纪元我们就必须面对残酷的现实React那种一切皆函数、一切皆 JavaScript 的纯粹性确实极大地降低了机器的认知负荷。好了今天写道这里吧资料展示下面是我整理的AI大模型 学习资料和工具包预览适合收藏后按主题逐步学习。
返回列表