当前位置:首页 > 科技  > 软件

尤雨溪:Vue 3 开发中的经验和教训

来源: 责编: 时间:2023-12-20 17:46:32 370观看
导读错误做法在升级 Vue 3 的过程中,Vue 团队有一些做的不好的地方,也从中吸取了一些教训。太多破坏性更改首先,每个变更都可能引发许多小的破坏性修改。尽管看似可以单独管理每项变更,但由于变更之间存在关联,因此复杂性呈指

80l28资讯网——每日最新资讯28at.com

错误做法

在升级 Vue 3 的过程中,Vue 团队有一些做的不好的地方,也从中吸取了一些教训。80l28资讯网——每日最新资讯28at.com

太多破坏性更改

首先,每个变更都可能引发许多小的破坏性修改。尽管看似可以单独管理每项变更,但由于变更之间存在关联,因此复杂性呈指数级增长。80l28资讯网——每日最新资讯28at.com

80l28资讯网——每日最新资讯28at.com

由此认识到:80l28资讯网——每日最新资讯28at.com

  • 要对于想要更改或删除的内容,确保其正常运行后再进行修改。
  • 对于新增的功能,应该有一个逐步引入的阶段。在这个阶段中,新的功能应该在特定标志下引入,允许用户选择性使用,这样用户可以根据自己的需求和偏好来决定是否使用新功能,而不会破坏其他内容。
  • 最终,对于已经弃用的功能,应该在未来的版本中逐步删除。在删除之前,应该确保这些功能不会对现有用户造成任何影响,并提前通知用户有关弃用和删除的计划。
  • Vue 维护者也会分阶段进行版本变更,避免在一个版本中出现大量重大变化。

长远来看,这些策略对于 Vue 的发展至关重要。在短期内,Vue 不会考虑任何重大变化,而是专注于改进和优化现有的功能。未来,希望 Vue 3 能够成为一个稳定的基础,为 Vue 的进一步发展提供坚实的基础。80l28资讯网——每日最新资讯28at.com

关注生态系统

第二个错误是低估了 Vue 3 升级对生态系统库的影响。Vue 团队原本认为,在面临如此巨大的工作量时,库的开发者不需要将他们的现有库调整为 Vue 3 的兼容版本。80l28资讯网——每日最新资讯28at.com

结果是,当 Vue 3 进行了许多内部 API 和其他内部行为的变更时,依赖这些内部行为的大型库升级到 Vue 3 变得非常困难。这导致了主要生态系统库(如 Nuxt 和 Beautify)的升级过程变得漫长而复杂。80l28资讯网——每日最新资讯28at.com

由此认识到:生态系统依赖性至关重要。80l28资讯网——每日最新资讯28at.com

80l28资讯网——每日最新资讯28at.com

为了有效应对这些潜在问题,Vue 引入了一个生态系统自动化持续集成系统,该系统专门针对 Vue 核心的下游生态系统依赖和依赖 Vue 的下游项目进行测试。80l28资讯网——每日最新资讯28at.com

目前,已经成功集成了超过 15 个项目,未来还将继续增加。在每次提交变更之后,该系统都会对所有下游库进行测试,确保在发布前就能发现潜在的问题。一旦发现问题,可以与这些生态系统库的作者合作,解决可能出现的兼容性问题。80l28资讯网——每日最新资讯28at.com

除此之外,Vue 团队希望明确禁止使用内部 API,因为他们发现这些内部 API 是导致库子组使用 Vue 时遇到困难的主要因素。80l28资讯网——每日最新资讯28at.com

幸运的是,随着 TypeScript 在大多数项目中的普及,现在可以在类型级别和运行时级别实施这种禁止。对于官方工具或库,仍需要公开一些内部 API 以实现连接。然而,对于无法直接控制的生态系统库,将逐步从类型定义中移除这些私有 API,以确保如果这些库试图使用它们时就会引发错误。80l28资讯网——每日最新资讯28at.com

同时发布所有内容

第三个错误就是:分开发布。Vue 3 核心在 2020 年 9 月发布,然而许多生态系统组件仍在开发中。初期文档存在一些问题,并且 composition API 没有在文档中作为首要概念进行介绍。在 Vue 核心稳定版发布时,官方库、迁移构建和开发工具支持尚未完善。80l28资讯网——每日最新资讯28at.com

Vue 团队之所以这样做,是因为认为这些功能很重要,能够尽早推出,以鼓励生态系统中的库和开发者开始尝试和使用新的功能。这样做的结果就是,在没有完整的生态系统支持的情况下发布,给很多早期采用者带来了困惑。80l28资讯网——每日最新资讯28at.com

80l28资讯网——每日最新资讯28at.com

尤雨溪表示,在一个重大发布中,重要的是要确保一切都准备就绪,而不是匆忙发布。80l28资讯网——每日最新资讯28at.com

更重要的是,在发布大型版本之前,需要积极主动地与利益相关者和生态系统合作,通过与库维护者进行合作,收集反馈并提前升级项目。这种合作方式可以更加积极主动地推动生态系统的改进和发展。如果希望在未来实现更大的变更,这一点是必须要改进的。80l28资讯网——每日最新资讯28at.com

正确做法

当然,在升级 Vue 3 的过程中,也有很多好的做法,下面就来详细看一看。80l28资讯网——每日最新资讯28at.com

使用 TypeScript

使用 TypeScript 是最正确的做法之一。80l28资讯网——每日最新资讯28at.com

80l28资讯网——每日最新资讯28at.com

现在,类型检查已成为前端解决方案的必备要素。当我们审视主要的前端解决方案时,可以发现 TypeScript 的集成和支持已成为人们首要关注的事项。80l28资讯网——每日最新资讯28at.com

采用 TypeScript 已被证明在长期项目和大型团队环境中显著提高了代码的可维护性。在 Vue 的代码库中使用 TypeScript 也极大地增强了 Vue 自身的可维护性,为未来的迭代和扩展打下了坚实的基础。80l28资讯网——每日最新资讯28at.com

Composition API

第二个正确的做法是采用了组合式 API。最初这受到了人们的质疑,但对于 Vue 来说效果非常好。引入组合式 API 时,它受到了 React hooks 的启发,但是它根植于 Vue 自己的响应性系统。80l28资讯网——每日最新资讯28at.com

80l28资讯网——每日最新资讯28at.com

实际上,仍然有人喜欢 Options API,但它存在一些组合式 API 没有的限制。这部分原因是 Vue 的用户群体已经发生了变化。在早期,大多数用户关注的是小到中型使用案例,重点是易于集成到现有的后端系统中。但随着时间的推移,Vue 的维护者们看到用户构建了更复杂和要求更高的使用案例,以及大规模单页面应用。80l28资讯网——每日最新资讯28at.com

为了让 Vue 适应不断变化的用户群体和行业需求,我们必须提出一些解决新问题的新方法,其中可扩展性是其中一个主要问题。因此,组合式 API 本质上是为了解决这种可扩展性问题而发明的,旨在提供一种解锁这种可扩展性的方法,同时尽可能地保留根植于 Vue 的用户友好性。虽然在早期有很多争议,但 Vue 团队的决策最终被证明是正确的。80l28资讯网——每日最新资讯28at.com

那些采用组合式 API 的开发者发现它确实有很多好处。组合式 API 的出现也催生了强大的社区努力,例如 VueUse,它提供了一系列极其有用的实用程序,解决了许多问题。这些问题并不适合包含在 Vue 核心中,但社区很好地解决了这些问题。事实上,VueUse 可能是直接由组合式 API 带来的最大好处之一。80l28资讯网——每日最新资讯28at.com

开发者体验

Vue 在开发者体验方面做出了明智的选择,这一点也得到了回报。这一选择促成了备受欢迎的 Web 构建工具 Vite 的诞生,它源自一个专为 Vue 开发的开发服务器原型。如今,许多框架都在利用 Vite,包括 Nuxt。80l28资讯网——每日最新资讯28at.com

80l28资讯网——每日最新资讯28at.com

Vue 对其 IDE 方面的投资也已经取得了丰厚的回报,形成了一个扩展的生态系统,使 Web 开发人员受益良多。这些 IDE 投入催生了 Volar 的诞生,它是一个子项目的总称,涵盖了 Vue 语言服务器和 Vue TSC。Vue TSC 是一个命令行界面,它包装了 TypeScript,并为 Vue 组件提供了命令行时间检查功能。80l28资讯网——每日最新资讯28at.com

这套工具最初仅为 Vue 而设计,类似于 Vite,但现在已经扩展成为一个工具集生态系统,帮助其他框架构建更出色的 IDE 和 TypeScript 支持。Volar 目前正逐步转变成一个框架无关的核心,不仅支持 Vue,还支持 Astro、MDX 等其他可能采用它的框架。80l28资讯网——每日最新资讯28at.com

这是 Vue 生态系统所独有的现象,我们看到很多源自生态系统的创新理念开始产生比 Vue 生态系统更大的影响。80l28资讯网——每日最新资讯28at.com

Vue 3 更好且不断增长

Vue 3 成功实现了他们设定的目标,包括提供更好的性能、更强大的类型支持、更优秀的可扩展性和更优的开发者体验。随着 Vue 2 的支持在本月结束,Vue 3 的下载量已经接近 Vue 总下载量的 48.8%。在过去一年中,Vue 3 的采用率几乎翻了一番。这表明 Vue 3 在迅速赢得开发者的青睐和信任,并在前端开发领域产生了深远的影响。80l28资讯网——每日最新资讯28at.com

80l28资讯网——每日最新资讯28at.com

展望未来

  • 稳定性是关键
  • 在可预见的未来不会出现 Vue 2 到 3 这种重大变更
  • 专注于可无缝采用的改进,例如:
  • 响应式系统/解析器优化
  • Vapor Mode:可选,类似与 solid 的解析策略

本文链接:http://www.28at.com/showinfo-26-50750-0.html尤雨溪:Vue 3 开发中的经验和教训

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: C++类模板特化与继承使用说明书,新手也能get

下一篇: React高手都会用的useMemo有什么用的?

标签:
  • 热门焦点
  • K60至尊版狂暴引擎2.0加持:超177万跑分斩获性能第一

    Redmi的后性能时代战略发布会今天下午如期举办,在本次发布会上,Redmi公布了多项关于和联发科的深度合作,以及新机K60 Ultra在软件和硬件方面的特性,例如:“K60 至尊版,双芯旗舰
  • 7月安卓手机性能榜:红魔8S Pro再夺榜首

    7月份的手机市场风平浪静,除了红魔和努比亚带来了两款搭载骁龙8Gen2领先版处理器的新机之外,别的也想不到有什么新品了,这也正常,通常6月7月都是手机厂商修整的时间,进入8月份之
  • 一文看懂为苹果Vision Pro开发应用程序

    译者 | 布加迪审校 | 重楼苹果的Vision Pro是一款混合现实(MR)头戴设备。Vision Pro结合了虚拟现实(VR)和增强现实(AR)的沉浸感。其高分辨率显示屏、先进的传感器和强大的处理能力
  • 得物效率前端微应用推进过程与思考

    一、背景效率工程随着业务的发展,组织规模的扩大,越来越多的企业开始意识到协作效率对于企业团队的重要性,甚至是决定其在某个行业竞争中突围的关键,是企业长久生存的根本。得物
  • “又被陈思诚骗了”

    作者|张思齐 出品|众面(ID:ZhongMian_ZM)如今的国产悬疑电影,成了陈思诚的天下。最近大爆电影《消失的她》票房突破30亿断层夺魁暑期档,陈思诚再度风头无两。你可以说陈思诚的
  • ESG的面子与里子

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之三伏大幕拉起,各地高温预警不绝,但处于厄尔尼诺大“烤”之下的除了众生,还有各大企业发布的ESG报告。ESG是“环境保
  • iQOO 11S屏幕细节公布:首发三星2K E6全感屏 安卓最好的直屏手机

    日前iQOO手机官方宣布,新一代电竞旗舰iQOO 11S将会在7月4日19:00正式与大家见面。随着发布时间的日益临近,官方关于该机的预热也更加密集,截至目前已
  • iQOO Neo8系列今日官宣:首发天玑9200+ 全球安卓最强芯!

    在昨日举行的的联发科新一代旗舰芯片天玑9200+的发布会上,iQOO官方也正式宣布,全新的iQOO Neo8系列新品将全球首发搭载这款当前性能最强大的移动平台
  • OPPO K11搭载高性能石墨散热系统:旗舰同款 性能凉爽释放

    日前OPPO官方宣布,将于7月25日14:30举办新品发布会,届时全新的OPPO K11将正式与大家见面,将主打旗舰影像,和同档位竞品相比,其最大的卖点就是将配备索尼
Top