平时公司都在用 react,最近正好一个项目原先的代码使用了 vue 框架,项目只是 demo 阶段,代码量还很少,而且 vue3 已发布接近一年了,就考虑在这个项目上切换 vue3 框架。
当下的 vue3 背景情况
自 2020 年 9 月 vue 正式发布 vue3 版本后,已接近一年时间,官方已经有了中文版 vue3 文档,通读官方文档并尝试后,感觉与 typescript 结合使用,并没有想象中那么丝滑。遂又去官方 github 上查询资料,发现 script setup 标签更适合与 typescript 结合使用。犹记得 2020 年底时 script setup 标签与 ref 语法糖还是引起了很大的争议的,而官方文档中却又都未提及。查询 rfcs 后发现 script setup 标签刚刚正式定版,在 3.1.3 版本中正式发布,在 3.2.0 版本中去除试验状态,成为正式的语法。而 ref 语法糖因为太过激进,语法与 js 差异太大,而被废除。
综合来看,当下 vue 官方文档对 vue3 的介绍重点还在于与 vue2 版本的兼容,vue2 的绝大部分语法,vue3 依然支持,vue3 只是在 vue2 的基础上增加了 setup 函数。与 typescript 的结合使用,也是基于 vue2 兼容加 setup 函数的基础上介绍,甚至在 props 定义类型时,还混合了 typescript 类型断言与 js 的类型构造函数,感觉有些别扭。而官方文档中尚未提及的 script setup 标签语法,才像是 vue3 不考虑 vue2 语法兼容性的功能完整释放,借助一系列 API,也可以与 typescript 有更好的结合使用体验。