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

本文 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
  • 语法糖 <script setup>
  • Fragments
  • Emits Component Option
  • 来自@vue/runtime-corecreateRenderer API能够创立自定义渲染器
  • style 外面能够绑定变量
  • SFC的<style scoped>当初能够包含全局规定或只针对插槽内容的规定
  • Suspense

新性能改善了整体的开发体验,欢送很多开发都的追捧。争执的焦点是,其中大部分性能,包含组合API、teleport、 suspense 等,在Vue 2中曾经都能用了,所以它们不能真正算作框架的改良。

真正的问题

毁坏的性变动,有很多。其中一些很简略,比方Events API。Vue实例不能再用作事件总线,但有即插即用的解决方案,如 mitt 或 tiny-emitter,能够用作间接代替。这须要有肯定工作工夫,但能够及时实现,没有太多危险。

另一方面,有些变动不能平安地进行,也不能不进行小规模或大规模的重构。在一个用Vue 2构建的现有大型利用中,你可能会应用一些被废除或扭转的API。

迁徙构建应该是两个版本之间的桥梁,但因为有这么多被废除的性能,它对大型项目并不实用。此外,官网对一些根本的反对库的倡议是迁徙到另一个不同的库,这进一步减少了复杂性。因为有这么多的挪动组件,即便迁徙构建胜利,也须要大量的工作,这对大我的项目来须要有更多的工夫用来解决技术债权。

不须要的货色

Vue始终是一个有意义的框架。你能够试着猜想一个API应该如何工作,你很可能是对的。Vue 3不再是这种状况。

一个例子是对于新的基于函数的Vue组件编写形式的意见征集,有大量的回应,包含侧面和负面的。不论你在这场争执中的立场如何,将社区分成两半绝不是一个好兆头。

文档

在开发过程中,特地是在一个新的框架中,谷歌和StackOverflow是你最好的敌人。目前,Vue 2的答案占据了压倒性的劣势,但在Vue 3中,很多API实现的原理都不一样了,因而可能会造成肯定的凌乱。

生态

一个框架有多弱小,它的生态系统就有多弱小。有争议的决定和不负责任的废除性能驱使许多贡献者来到,导致许多库被放弃。然而,当你没有给开源库一个可行的办法来反对两个版本的时候,就指摘他们没跟上你的版本时,这表明你不足同情心和对大局的了解。

一个框架的真正力量来自于它四周的社区和生态系统。

过来

如果你有幸在2015年前后写代码,你有可能会应用过后最支流的框架AngularJS。

转到 Vue 3的看起来很像从 AngularJS 到 Angular(版本1⇒2)的过渡。大量的破坏性的变动导致了挫败感,最终Angular失去了对React和Vue的吸引力。

如果你是一个全栈工程师,你可能相熟大概10年前在Python生态系统中产生的同样状况。在大概十年的工夫里,许多我的项目无奈降级,因为许多外围库没有减少对Python 3的反对,而呈现的新库只反对Python 3。当然,起初的Python版本开始只在版本3上增加新的和闪亮的性能,这种凌乱的状况还没有真正完结。

将来--这种状况会再次发生吗?

看起来后退的方向是向后退,把所有的货色都移植到迁徙构建中,然而侵害曾经造成了,开发满意度看起来并不乐观,不能漠视。有远见地让框架参加进来是正当的,但开发教训是框架的外围职责之一。Vue 4应该思考到整个生态系统,并提供一个迁徙门路,否则它将成为没有人违心应用的最佳框架。

到目前为止,你对Vue 3的迁徙有什么教训?请在评论中分享你的想法和倡议。

编辑中可能存在的bug没法实时晓得,预先为了解决这些bug,花了大量的工夫进行log 调试,这边顺便给大家举荐一个好用的BUG监控工具 Fundebug。

作者:Chris 译者:小智 起源:medium

原文:https://fadamais.medium.com/v...

交换

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

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