Vue 3是一个错误,我们不应该再犯。

发布时间:2022-12-11 15:00

有梦想,有干货,微信搜索 【大迁世界】 关注这个在凌晨还在刷碗的刷碗智。

本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试完整考点、资料以及我的系列文章。

文本是翻译的,作者Fotis Adamakis, 他是 Vue.js雅典会议的共同组织者,文中的第一人称指的是该大佬。

从最初引入Vue 3开始,已经过去了4年多。经过多次RFC的讨论,以及其他现代框架(包括React和Svelte)的影响,Vue 可能已经成为最强大和最全面的框架,能够逐步支持任何规模和架构的应用。

听起来很刺激,对吗?嗯,事实远非如此。从那时起,就发生了很多延迟和降级的情况。尽管Vue 3最近成为了新的默认版本,但很多重要的支持库还没有准备好,甚至没有计划与两个版本兼容。这说明很多代码库还停留在Vue 2上,迁移到版本3的路径并不容易。

请不要误解我,Vue 3非常棒。它可能是目前最好的框架了。但事实上,从第二版开始没有简单的迁移路径,这是一个错误,我们不应该在未来重复。

Vue 2的问题

Vue一直被认为是一个进步的框架。选项API很容易理解,我们可以学习并在需要时引入更复杂的模式和库。小的学习曲线和良好的文档是大家喜欢它的原因。

另一方面,在将通用逻辑抽象为mixin时,使用继承而不是组合的体系结构缺陷造成了许多可伸缩性问题,并破坏了干净组件声明的许多原则。Vue3 引入组合API 作为一种解决方案。

另一个重要的问题是对typecript的支持。当然,在Vue组件中编写typescript就像在script标签中添加type="ts"一样容易。但在模板和 store 里,支持是有问题的。

vue3 解决方案

完全重写是一个改善框架内部结构的机会。Vue3 广泛地使用了Typescript,包括响应性机制在内的许多方面都从头开始。这使得Vue 3在数据包大小、初始渲染、更新和内存使用方面的性能得到了明显的改善。

此外,还增加了很多新的功能。

  • Composition API
  • 语法糖