在 Angular 8 中,我们可以期待些什么

Angular 作为一款优秀的前端框架,自诞生之日起,就致力于面向前端开发者提供一整套全功能解决方案。与其他流行框架所追求的理念不同,Angular 并非作为一款可以并入 Web 应用程序的轻量级框架而生,而是设计为:包含了一个完整的工作流,用于从项目创建开始,持续地维护并更新你的应用程序。

2019 对于 Angular 来说意义非凡,因为其包含了 Ivy 等功能的全新版 Angular 8 将于本年内正式发布。尽管 Angular 技术团队仍没有对外公布 Angular 8 正式版发布日期,但其 beta 版在本月上线已几乎没有悬念。Angular 8 的发布近在咫尺!

那么,在 Angular 8 中,我们可以期待些什么?

Angular 8 中有什么新功能

尽管大多数开发者都在关注 Ivy,但其实 Angular 8 中还是有很多值得称道的亮点:

  • JavaScript 中的差异化加载

    作为构建过程的一部分,Angular CLI 生成的新应用程序现在将包含用于旧版 JavaScript ( ES5 )和现代 JavaScript ( ES2015 +)的单独软件包。该包在客户端中实现差异化加载,以提高浏览器的加载速度和传输间隔时间( TTI )。这是一个好消息,意味着支持 ES2015 的浏览器将能够下载更小、更高效的应用程序包,而这些应用程序包的加载速度和渲染速度都比以往更快。

  • Ivy (预览版)视图引擎抢先试用

    您可在应用程序中开始使用 Ivy 渲染器,并向 Angular 团队提供使用反馈,以便其及时做出优化和修复。

  • Angular Router 的向后兼容模式

    Angular 添加了向后兼容模式,以降低大型项目的升级成本。Angular Router 将可以使用 $ route APIs 在现有的 Angular 应用程序中,选择延迟加载部分 Angular 1.x 应用程序。在理想的情况下,我们甚至可以立即将 Angular 1.x 应用程序升级到 Angular 2+。

    然而,现实并非如此。直到今天,还有大量传统的 Angular 应用程序仍在为企业提供服务。而这些企业没有选择升级的原因很简单:它们运行良好,并且在完成重写时无需太多投入。

    然而,Angular 1.x 的时代已经结束,之后不会有任何新的更新,直到 2021 年 6 月 30 日。因此,对于从事大型 Angular 1.x 应用程序开发的团队,现在正是选择升级的最佳时间。

  • 改良的 Web Worker 绑定方式

    Web Worker 是编写主线程运行代码的好方法,可用于提高应用程序的速度和并发性。为了达到这一目标,Angular 团队在 CLI 中添加了改良的 Web Worker 绑定支持。

  • 可选的信息共享机制

    为了有效收集您的反馈,更好地建设 Angular 社区,Angular 团队在 CLI 中添加了可选的信息共享机制。在您同意的情况下,将开始收集您的命令行和构建速度等匿名信息。

  • 依赖关系更新

    与往常一样,Angular 团队正在更新对 TypeScript、RxJS 和 Node 等工具的依赖关系,以便与 Angular 生态系统的其余部分保持同步。

Angular Ivy 是什么?

作为下一代 Angular 的视图引擎,Ivy 的出现旨在彻底缩减代码尺寸并增强系统灵活性。与目前的 Angular View Engine 相比,Ivy 具有以下优势:

• 通过 Angular 编译器生成的代码现在将更容易让开发者阅读和理解

• 项目重建时间将明显加快

• 有效减少了负载大小,浏览器用于下载和解析应用程序的时间将更短

• 更好的模板类型检查,以便您在项目构建初期,就可捕获更多 BUG,以防止用户在运行时遇到它们

除此之外,Angular Ivy 与现有的 Angular 应用程序广泛兼容。因此,在理想的情况下,您将无需更改应用程序即可获得 Ivy 的全部支持。这也是为什么使用 Angular 8 和 Ivy 构建当前的 Angular 应用程序会更加便利。

Ivy (预览版)可能存在的问题

目前已知的是,Ivy 的国际版和 Angular Universal 版尚未完全兼容。当然,如果您在开发过程中遇到任何使用 BUG,请立即向 Angular 技术团队反馈,以便他们能够及时解决问题并将您的建议作为 Ivy 正式版的一部分。

如果您的 Angular 应用程序支持多语言或使用服务器端呈现数据,请不要指望它能与 Ivy 完美结合。除此之外,用户可能遇到的另一个问题就是 Angular Material,目前来看,使用 Angular Material 的应用似乎与即将发布的 Angular 8 预览版 Ivy 不太匹配。

Angular 8 对 Web Worker 的支持

对于那些对 Web Worker 还不熟悉的开发者来说,Web Worker 标志着前端开发中的一项重要创新,在此之前,所有 Web 应用程序仅限于使用单线程。而随着 Web Worker 的出现,可以将 CPU 分配到单独的硬件线程中,使浏览器环境拥有多线程,从而提升项目开发效率。

在 Angular 8 更新之前,使用 Web Worker 需要注意的问题是:在 worker 中运行的代码不能与应用程序的其余部分位于同一 JavaScript 脚本文件中。它必须是分开的。因此,对于曾经希望借助 Angular CLI 等工具,自动将 JavaScript 文件拆分、绑定到更少文件夹下的效果往往不佳。而 Angular 8 的新特性之一便是改进了使用 Angular CLI 捆绑 Web Worker 的支持,这项改进意味着您将走向多并发、自动化的 Web Worker 之路。

Angular 8 对 TypeScript 的支持

关于 Angular 8 中的依赖更新,包括了对 Angular 依赖项和最新版本的更新,如 RxJS 和 TypeScript 等框架。这看起来似乎是一个微小的改进,但却同样受欢迎,特别是 TypeScript 部分。

Angular 8 的性能提升

虽然 Angular 8 带来了很多令人称赞的功能,但是真正促使我们升级的很大一部分原因取决于其性能的提升!为证实这一点,我们将对 Angular 7.2 和 Angular 8.0.0-beta.7 进行全面对比。

该性能测试是基于 ng new 创建的新应用程序运行,并使用 ng build --prod 构建的。测试本身使用了 Chrome 的审核标签完成,通过 “ Applied Fast 3G,4X CPU Slowdown ” 的设置来模拟在移动设备上运行。

Angular 7.2

使用 Angular 7.2 的正式版本生成 main.js 的大小为 240KB。具体数据如下图:

Angular 8.0.0-beta.7

Angular 8 beta 版本的 main.js 文件大小与 Angular 7.2 相同:240KB。由此可见,文件大小没有任何改变,但让我们对比一下性能数据:

Angular 8 看起来更棒!相对于 Angular 7.2,获得了相当不错的性能提升。

于是,在 Angular 8 中,我们可以得到些什么

正如我们所看到的,Angular 8 的新增特性除 Ivy 之外并不是很亮眼,尽管这些特性非常好用,但对于大多数应用程序来说并不重要。

基于这一点,您应该将应用程序升级到 Angular 8,还是坚持使用 Angular 7 ?毫无疑问,你应该升级它们。即便功能上没有任何大的重大更新,但通过 Angular 8 新增的差异化加载,您将获得显著的性能提升。

更重要的是,升级到 Angular 8 将确保您的应用程序为 Ivy 做好准备,即便目前 Ivy 只是 Angular 8 提供的一个可选预览。如果您的应用程序需要兼容 Ivy,那么最好从现在开始尝试。

或者,您也可以选择一条更加快捷且简便的方式,比如使用一款相当成熟的商业化开发工具—— WijmoJS。这样,您就不必考虑项目中前端框架的兼容性和版本更新问题,因为它不但同时兼容了 Angular、React、Vue、TypeScript 和 Ionic 等框架,还时刻紧随技术潮流,第一时间保持对框架最新版本的全面支持。


本文转自葡萄城官网

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345