点击下崽 ZY:百度网盘
原作者首先申明了他并没有贬斥 Vue3 的意思。他认为 Vue3 是十分十分棒的框架,解决了 Vue2 中很多潜在问题,技术层面改善了开发人员的开发体验,并显著进步了性能。原作者次要的问题,是从 Vue3 突破性的扭转以及周边生态圈未能及时跟上的角度,重点强调了迁徙降级老本 + 危险较大。
对于降级老本问题:尤大也抵赖了 Vue3 降级体验并没有设想中的那么晦涩,Vue4 会吸取经验,做好安稳迭代。这一点本文会在上面具体阐明。
接下来,咱们针对原文中提到的观点逐个列举解读。
ps: 为了防止语言翻译差别问题,所有原作者和尤大的观点都是附上英语原文。
一、破坏性的 api 变更(Breaking changes)
[Events API]的弃用让这个问题首当其冲。(straightforward like the depreciation of the Events API)。Vue 实例再也不能作为事件总线做事件通信,$on,$off,$once 的彻底移除意味着之前所有无关代码都必须从新颠覆重写,尽管有很好的插件工具让这件事变得没那么简单,然而依然会带来不小的迁徙老本。
代码构建问题。你会常常遇到用 Vue2 写法写进去的代码在构建(build) 失败或抛出正告。因为这些 api 写法在 Vue3 中曾经被废除。这问题在已存在的大型项目中的尤为突出(In an existing large-scale application built with Vue 2, you would probably use some of the deprecated or changed APIs)。下图展现了一部分 Breaking changes,能够看到破坏性的 api 变更数的确很多:
二、颠覆式的设计模式(composition-api)
颠覆式的 composition-api 缓缓向面向函数思维转变,导致很多原有习惯于 options-api 的开发者恶感 Vue 正在像 react 聚拢,没有保持住 Vue 特色。它提出了一种新的基于函数的 Vue 组件编写形式,引起了 Vue 社区大量的争议和决裂,甚至将社区分隔为两种观点营垒唇枪舌剑,最终导致了
三、生态系统(The ecosystem)
框架的真正力量来自社区和它四周的生态系统。(The true power of a framework comes from the community and the ecosystem around it.)
生态系统和框架自身一样重要。因为没有责任机制,在有争议的决定和在弃用性能的时候,很多框架周边的生态系统的许多贡献者会被迫来到,并导致许多库被放弃或者提早更新。很多时候,咱们没有方法做版本兼容时,咱们往往只能把责任归咎于,开源库不足同理心和对大局的了解。