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

2019-04-15 09:00:55 +08:00
 powertoolsteam

转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。

本文由葡萄城翻译并发布


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

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

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

Angular 8 中有什么新功能

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

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 等框架,还时刻紧随技术潮流,第一时间保持对框架最新版本的全面支持。


本文是由葡萄城技术开发团队发布,转载请注明出处:葡萄城官网

了解全面支持 Angular、React、Vue 的前端开发工具包,请前往 WijmoJS 官网

5048 次点击
所在节点    推广
27 条回复
powertoolsteam
2019-04-15 09:24:17 +08:00
与开发人员分享前端技术趋势、交流心得技巧,请加入葡萄城“前端技术交流群”( QQ 群:720389894 )
yianbin
2019-04-15 09:26:34 +08:00
等 Ivy
x7395759
2019-04-15 09:34:29 +08:00
Angular 就 8 了???
bmy
2019-04-15 09:34:51 +08:00
什么 都 8 了!!
KDr2
2019-04-15 09:37:12 +08:00
当然是期待 Angular 80.3 了。
momocraft
2019-04-15 09:40:41 +08:00
敢不敢找人润个色啊,这样子真的很像机翻出来的
Yiki
2019-04-15 09:41:27 +08:00
ng 大法好!!~
ben1024
2019-04-15 09:42:47 +08:00
版本号太快
wszgrcy
2019-04-15 09:43:02 +08:00
angular 天下无双!不过听着葡萄城这个名字感觉怪怪的
wengjin456123
2019-04-15 09:48:33 +08:00
什么!都 8 了,我只用过 2
lovedebug
2019-04-15 09:50:09 +08:00
angular 1.6.x 的项目表示目前情绪还很稳定。。。
hantsy
2019-04-15 09:50:51 +08:00
GrapeCity 的博客内容不错,Medium 上的文章也有看到,对于前端开发很有用。
suriv520
2019-04-15 09:53:17 +08:00
谢谢分享。是软文也认了。
liuhuansir
2019-04-15 10:00:16 +08:00
@lovedebug angular 1.4.7 的项目还在继续
lovedebug
2019-04-15 10:25:26 +08:00
@liuhuansir 看来都是苦逼维护者
wly19960911
2019-04-15 10:32:24 +08:00
版本号走的挺快的,但是兼容性都还不错,2 开始升级阻力不算很大,特别 4 开始压力就很小了。只是正常的迭代而已
liuhuansir
2019-04-15 10:35:49 +08:00
@lovedebug 没办法,业务太多,人手不够,文档不全,只能缝缝补补
lwbjing
2019-04-15 11:38:16 +08:00
8 ???我这是离开前端圈子多久了
Arrowing
2019-04-15 11:42:55 +08:00
都 8 了!还在用 1 !
elone
2019-04-15 11:51:44 +08:00
在用 7,感觉非常好。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/555160

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX