首页 > 娱乐播报 > 正文

Ivy 编译器的设计目的是删除那些无法通过摇树优化使用的 Angular 部件
发表时间:2020-05-06 11:38:2802:39   来源:本站    点击:3472671

摘要:市盈率怎么算,市盈率怎么计算,市盈率是什么意思,市盈率如何计算,阿宁资源网,阿尼·利昂纳德,阿米巴经营
Bug修复
核心:优化i18n 模块之外的ICU(#35347)(4fb5e21)
核心:class当阴影(#35350)(8220363),关闭时,正确地将静态和动态绑定连接#35335
核心:删除对Map/ Setin [class]/ [style]绑定的支持(#35392)(1797390)
常春藤: LFrame需要释放leaveView()(#35156)(4b1dcaf)上的内存#35148
常春藤:基于选择器将属性和类添加到宿主元素(#34481)(03a8b16)
常春藤:具修复具有合成属性绑定的指令与注入ViewContainerRef(#35343)(a30fd29)的指令位于同一节点上的BUG#35342
常春藤:查询应将ng-container中的元素与后代相匹配:false选项(#35384)(fd4ce84)#34768
常春藤:多次解析(#35249)(0671e54)时,错误的上下文传递给 ngOnDestroy #35167
以下是翻译

Angular 的 9.0.0 版本发布了!这是一个跨平台的主版本,包括框架、Angular Material 和 CLI。这个版本默认会把应用程序切换到 Ivy 编译器和运行时,并改进了组件测试方法。

这是 Angular 在过去 3 年中所做的最重大更新之一,我们很高兴能通过各种方式帮助开发人员构建出更好的应用并为 Angular 生态系统做出贡献。

如何更新到版本 9
访问 update.angular.io,获取详细信息和升级指导。为了获得最佳的更新体验,我们建议你先升级到 Angular 8 的最终版。

首先,更新到 8 的最新版本

ng update @angular/cli@8 @angular/core@8

然后,升级到 9

ng update @angular/cli @angular/core

要查看使用此更新内容的关键修改(包括已弃用了哪些 API),请参阅 Angular 文档中的“更新到 Angular 9 ”。

Ivy(常春藤)
默认情况下,版本 9 会把所有的应用程序迁移成使用 Ivy 编译器和运行时的。除了数以百计的 bug 修复之外,Ivy 编译器和运行时还提供了许多优点:

打包尺寸更小
测试速度更快
更好的调试
改进了 CSS 类和样式绑定
改进了类型检查
改进了构建错误
缩短了构建时间,默认启用了 AOT
改进了国际化支持
下面是一些比较值得注意的改进项。

打包尺寸更小
Ivy 编译器的设计目的是删除那些无法通过摇树优化使用的 Angular 部件,并为每个 Angular 组件生成更少的代码。

通过这些改进,小型应用和大型应用可以节省大量成本。

那些没用多少 Angular 特性的小应用从摇树优化中受益最多。
包含很多组件的大型应用从减小的工厂函数体积中受益最多。
中等大小应用的包体积可能只会小一点点,因为它们从摇树优化中受益较少,并且没有足够的组件从减小的工厂函数体积中受益。
测试速度更快
我们还改进了 Ivy 中 TestBed 的实现,以提高效率。

以前,TestBed 会在运行每个测试之间重新编译所有组件,而不管组件是否有任何变化(例如,通过覆写)。

在 Ivy 中,除非已经手动覆盖了一个组件,否则 TestBed 不会在这些测试之间重新编译组件,这样就可以避免大多数测试间的重新编译。

有了这项更改,框架的核心验收测试速度提高了大约 40%。我们期待用户自己的应用测试速度也能提高 40-50%左右。

更好的调试
Ivy 为你提供了更多调试应用的工具。当我使用 Ivy 运行时在开发模式下运行应用时,我们现在提供了新的全局对象 ng 来进行调试。

你可以要求 Angular 访问你的组件、指令等实例
你可以手动调用各个方法并更新状态
如果要查看变更检测的结果,可以使用 applyChanges 来触发变更检测

Ivy 还改进了用于调试问题的调用栈跟踪,比如 ExpressionChangedAfterItHasBeenCheckedError 。以前堆栈跟踪可能没多少帮助:

在 Ivy 中,你可以看到一个更实用的调用栈跟踪,它允许你直接从一个已更改的表达式跳转到模板指令。
分享到:
Copyright 2006-2012 Powered by www.lcsva.com 版权所有 欢迎广大企业免费发布信息,所有内容未经许可严禁复制版权


备案信息