省流版结论:是债越滚越大。
我不是说 Vue 是“失败的框架”,相反,它仍然是我最常用的前端框架之一。但如果你问我,为什么现在一个 Vue 项目要配 vite+ unplugin-auto-import+ defineModel+ tsconfig-paths这一大堆插件工具链?
答案很简单:因为核心框架没有收敛,才需要周边生态来“补洞”。
相比之下,我现在越来越倾向去用 Solid 或者 Svelte——不是因为它们更完美,而是因为它们把复杂度放在编译期,至少不会在开发期突然跳一个无法追踪的 bug 出来。
defineProps为什么有两种写法?是技术能力没跟上
Vue 3.3 之后,你可以用 defineProps<T>() 写得漂漂亮亮,直接吃 TypeScript 的类型。问题是,这功能在最早设计 Vue 3 的时候根本没考虑进去。
原因也不复杂:要想解析 defineProps<T>() 中的类型,需要在编译阶段访问完整的类型 AST,甚至要模拟部分 tsc 的行为。而这在 2020 年 Vue 3 发布的时候,尤雨溪他们压根没做这方面的类型解析,也没人想到要这么做。于是就退而求其次,让用户手动写 defineProps({ ... }),走运行时代码路径。
直到后来社区实在吐槽太多,才开始加 TS 类型支持,又是一轮 AST parser 的大补票。所以别看你现在写 defineProps<T>() 写得爽,其实背后是 Vue 编译器绕了一大圈才支持上的。
这不是 API 的“设计”,而是“补锅”。
script setup 的语法糖,糖吃多了一定好吗?
为什么有 setup(),又有 <script setup>?一个是函数,一个是语法块,本质上做的是一样的事——响应式逻辑提前在编译期展开,避免运行时开销。
但你会发现,如果你用 <script setup>,就要配合 defineProps()、defineEmits()、defineExpose(),一整套“define 系”API。而你不用 <script setup>,就只能靠手动 return 暴露接口,写法又完全不同。
两种写法没有互通,没有迁移指南,甚至插件提示和类型补全都不统一。对开发者来说,这就是一套语法带两套脑子,心智负担极高。
换句话说,Vue 开发团队本来想用 <script setup> 简化体验,但没有把老语法完全干掉,反而变成了一种“语法并存但行为不统一”的混乱状态。
响应式系统的设计,本质上是“概念堆叠”
ref 和 reactive 是 Vue 响应式系统的基石。但这两个 API 有着微妙的区别,比如:
-
ref({})返回的是包了一层.value的对象 -
reactive({})是深层响应式,但不能用于原始类型 -
ref + reactive混用还会触发 Ref Unwrapping 机制(自动展开),但又不是所有场景都展开,比如数组、嵌套引用等
表面上这些规则都“有理可依”,但实际开发中你会发现自己经常处在调试期而不是开发期,更多时间在绕语言特性和 Vue 内部机制的坑。
你说这是“灵活”?不,这是复杂度的外溢。
v-model 官方自己都没用明白
在子组件里直接 v-model="reactiveObj",在 rollup 下能跑,换个 rolldown 就炸了。
而 Vue 编译器生成的代码是这样的:
js
"onUpdate:modelValue": ($event) => form = $event
是的,直接把一个 const 变量重新赋值了。这不是你代码写错了,而是 Vue 编译器写错了。但这个“错”的结果,rollup 忽略了,rolldown 报错了。
你以为这只是打包器之间的兼容性问题?不是的,是因为 Vue 编译器在处理 v-model 绑定时,没有考虑 reactive 变量本身是不可重新赋值的语义,导致生成的代码语义和你的预期完全不一致。
而最关键的是:Vue 官方文档压根没有一处明确说明不能用 v-model 绑定 reactive 对象,这就离谱了。
为什么会这样?因为 Vue 从来没有设计完
很多人说:Vue 3 是为了向 Vue 2 兼容,才引入这么多复杂的语法和 API。这个说法对一半。
另一半真相是:Vue 3 本身设计就不完整,它是在一边发布,一边填坑,一边临时找“糖衣”来缓解开发者痛点的过程中不断堆积出来的。
-
<script setup>是为了替代笨重的setup() -
defineProps<T>()是为了补强 TS 类型推导 -
defineModel()是为了封装 v-model 的繁琐语法 -
vapor mode是为了减少运行时,模仿 Solid 和 Svelte 的编译期框架
每一个 API 出发点都“很合理”,但组合在一起,就构成了一种**“积重难返的技术债”**,让 Vue 成为了一套需要反复查文档、踩无数坑、靠插件兜底的工具链。
我的建议
-
新手学 Vue,尽量先搞清楚组合式 API 的边界,不要一上来就同时用
script setup+defineModel+ref/reactive混写。 -
项目要么完全走
<script setup>,要么彻底走传统组件写法,不要混搭。 - 善用插件,但不要依赖插件解决基础框架的设计缺陷。
大模型岗位需求
大模型时代,企业对人才的需求变了,AIGC相关岗位人才难求,薪资持续走高,AI运营薪资平均值约18457元,AI工程师薪资平均值约37336元,大模型算法薪资平均值约39607元。
掌握大模型技术你还能拥有更多可能性:
• 成为一名全栈大模型工程师,包括Prompt,LangChain,LoRA等技术开发、运营、产品等方向全栈工程;
• 能够拥有模型二次训练和微调能力,带领大家完成智能对话、文生图等热门应用;
• 薪资上浮10%-20%,覆盖更多高薪岗位,这是一个高需求、高待遇的热门方向和领域;
• 更优质的项目可以为未来创新创业提供基石。
可能大家都想学习AI大模型技术,也想通过这项技能真正达到升职加薪,就业或是副业的目的,但是不知道该如何开始学习,因为网上的资料太多太杂乱了,如果不能系统的学习就相当于是白学。为了让大家少走弯路,少碰壁,这里我直接把全套AI技术和大模型入门资料、操作变现玩法都打包整理好,希望能够真正帮助到大家。
读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用
零基础入门AI大模型
今天贴心为大家准备好了一系列AI大模型资源,包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
有需要的小伙伴,可以点击下方链接免费领取【保证100%免费】
点击领取 《AI大模型&人工智能&入门进阶学习资源包》*
1.学习路线图
如果大家想领取完整的学习路线及大模型学习资料包,可以扫下方二维码获取
👉2.大模型配套视频👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。(篇幅有限,仅展示部分)
大模型教程
👉3.大模型经典学习电子书👈
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XL***等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(篇幅有限,仅展示部分,公众号内领取)
电子书
👉4.大模型面试题&答案👈
截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(篇幅有限,仅展示部分,公众号内领取)
大模型面试
**因篇幅有限,仅展示部分资料,**有需要的小伙伴,可以点击下方链接免费领取【保证100%免费】
点击领取 《AI大模型&人工智能&入门进阶学习资源包》
**或扫描下方二维码领取 **