首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
powertoolsteam
V2EX  ›  推广

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

  •  1
     
  •   powertoolsteam · 282 天前 · 3769 次点击
    这是一个创建于 282 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    本文由葡萄城翻译并发布


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


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

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

    27 回复  |  直到 2019-04-22 16:45:25 +08:00
    powertoolsteam
        1
    powertoolsteam   282 天前
    与开发人员分享前端技术趋势、交流心得技巧,请加入葡萄城“前端技术交流群”( QQ 群:720389894 )
    yianbin
        2
    yianbin   282 天前
    等 Ivy
    x7395759
        3
    x7395759   282 天前
    Angular 就 8 了???
    bmy
        4
    bmy   282 天前
    什么 都 8 了!!
    KDr2
        5
    KDr2   282 天前
    当然是期待 Angular 80.3 了。
    momocraft
        6
    momocraft   282 天前
    敢不敢找人润个色啊,这样子真的很像机翻出来的
    Yiki
        7
    Yiki   282 天前
    ng 大法好!!~
    ben1024
        8
    ben1024   282 天前
    版本号太快
    wszgrcy
        9
    wszgrcy   282 天前 via Android
    angular 天下无双!不过听着葡萄城这个名字感觉怪怪的
    wengjin456123
        10
    wengjin456123   282 天前 via Android
    什么!都 8 了,我只用过 2
    lovedebug
        11
    lovedebug   282 天前
    angular 1.6.x 的项目表示目前情绪还很稳定。。。
    hantsy
        12
    hantsy   282 天前   ♥ 1
    GrapeCity 的博客内容不错,Medium 上的文章也有看到,对于前端开发很有用。
    suriv520
        13
    suriv520   282 天前 via iPhone
    谢谢分享。是软文也认了。
    liuhuansir
        14
    liuhuansir   282 天前
    @lovedebug angular 1.4.7 的项目还在继续
    lovedebug
        15
    lovedebug   282 天前
    @liuhuansir 看来都是苦逼维护者
    wly19960911
        16
    wly19960911   282 天前
    版本号走的挺快的,但是兼容性都还不错,2 开始升级阻力不算很大,特别 4 开始压力就很小了。只是正常的迭代而已
    liuhuansir
        17
    liuhuansir   282 天前
    @lovedebug 没办法,业务太多,人手不够,文档不全,只能缝缝补补
    lwbjing
        18
    lwbjing   282 天前 via iPhone
    8 ???我这是离开前端圈子多久了
    Arrowing
        19
    Arrowing   282 天前
    都 8 了!还在用 1 !
    elone
        20
    elone   282 天前
    在用 7,感觉非常好。
    GiantHard
        21
    GiantHard   282 天前
    Angular + TypeScript + RxJS + WebStorm = Great
    CFO
        22
    CFO   282 天前 via Android
    从 2 一路升到 7 没遇到什么的大问题 尤其是从 4 开始往上升之后更是平稳
    jeefyjl
        23
    jeefyjl   282 天前
    我现在用 7,用 vscode 开发,开发时非常卡,代码提示要等好几秒才能出来.你们有没有和我相同的情况?
    faceRollingKB
        24
    faceRollingKB   282 天前
    能详细讲讲多语言问题么?跟 i18n 不兼容?
    colorcat
        25
    colorcat   282 天前
    不错,Angular8
    wee911
        26
    wee911   282 天前
    vue 好好学学吧
    killmojo
        27
    killmojo   275 天前
    离 X 不远了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2124 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 14:17 · PVG 22:17 · LAX 06:17 · JFK 09:17
    ♥ Do have faith in what you're doing.