浅谈Angular10中的新功能
本篇文章带大家了解一下Angular10中的新功能。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
Angular 10是对流行的Web开发框架的主要升级,通常会在6月24日作为正式版本提供。正式版升级是基于Google开发的基于TypeScript的框架,与新版本相比,它更加注重质量,工具和生态系统的改进特征。
Angular 10小于以前的Angular版本。 新功能包括Angular Material UI组件库中的新日期范围选择器和CommonJS导入警告。 当与CommonJS打包的依赖项可能导致更大,更慢的应用程序一起使用时,CommonJS导入警告会警告开发人员,从而允许开发人员替换ECMAScript模块包。
相关教程推荐:《angular教程》
此外,可选的严格设置,创建一个新的工作区时提供了一个更严格的项目设置ng new
,通过ng new -- strict
。 启用此标志将使用新设置初始化新项目,以提高可维护性,帮助捕获错误并允许CLI在应用程序上进行高级优化。
在哪里下载Angular 10
您可以在GitHub上找到Angular 10的一般版本 。 要更新当前的Angular安装,可以运行以下命令:
ng update @angular/cli @angular/core
Angular 10的新功能
Angular 10的主要功能包括:
- TSlib,包含帮助函数的TypeScript运行时库,已更新为TSlib 2.0。 用于TypeScript的TSLint静态分析工具已更新为TSLint 6。
- 添加了一个编译器接口,用于包装实际的ngtsc编译器。 特定于语言服务的编译器使用项目接口管理多个类型检查文件,并根据需要创建Scriptinfos。
- 新项目的浏览器配置已更新,以排除较旧的,较少使用的浏览器。 不支持Internet Explorer 9,Internet Explorer 10和Internet Explorer Mobile。
- Angular软件包格式不再包含ESM5或FESM5软件包,在为Angular软件包和库运行
yarn
或npm install
时,节省了下载和安装时间。 - 对于编译器,已为属性读取和方法调用添加了名称范围。
-
EntryPointFinder
,这是一个基于程序的入口点查找器,可以从tsjconfig.json文件指定的程序中的导入中获得种子。 当活动程序仅导入一小部分已安装的入口点时,这预计会比DirectoryWalkerEntryPointFinder
更快。 - 由于具有可疑的价值和性能问题,自动完成功能已从HTML实体(如
&
)中删除。 - 显式映射从闭包公开到devmode文件。 此功能针对必须将生产构建输入转换为等效devmode的开发工具。
- 一项重大更改是,将
ModuleWithProviders
强制ModuleWithProviders
。 为了使ModuleWithProviders
模式与Ivy编译和渲染管道一起使用,需要使用通用类型参数,但是在此提交之前,View Engine允许省略通用类型。 如果开发人员使用不带泛型类型的ModuleWithProviders
,则版本10迁移将更新代码。 但是,如果开发人员使用View Engine并依赖于忽略泛型类型的库,则会发出构建错误。 在这种情况下,ngcc将无济于事,迁移将仅涵盖应用程序代码。 应该与图书馆作者联系以修复他们的图书馆。 解决方法是,可以在tsconfig中将skipLibChecks设置为false或将应用程序更新为仅使用Ivy。 - 现在具有TypeScript 3.9的功能,并且删除了对TypeScript 3.8的支持。 这是一个重大变化。 也不再支持TypeScript 3.6和TypeScript 3.7。
- 类型检查的性能已改进到编译器cli。
- 为了提高性能,已对
basePaths
的计算进行了延迟,因此仅在TargetedEntryPointFinder
需要时才进行工作。 以前,每当实例化查找程序时都会计算basePaths
,这在已经处理了目标入口点的情况下浪费了精力。 - 支持合并多个翻译文件。 以前,每个语言环境仅允许一个翻译文件。 现在,用户可以在每个语言环境中指定多个文件,并且每个文件的事务都将通过消息传递ID合并。
- 可以配置异步锁定超时。 这增加了对ngcc.config.js文件的支持,用于设置
retryAttempts
和retryDelay
选项。 集成测试添加了新的超时检查,并使用ngcc.config.js减少了超时时间,以防止测试花费太长时间。 - 在一项重大更改中,有关未知元素的警告现在记录为错误。 虽然这不会破坏应用程序,但它可能会触发一些期望通过console.error不记录任何内容的工具。
- 在另一个重大更改中,任何返回
EMPTY
解析器都将取消导航。 为了使导航继续进行,开发人员必须更新解析器以更新某些值,例如default!Empty
。 - 在元数据中添加了依赖项信息和ng-content选择器。 提议的编译器功能将提供对诸如Angular Language Service之类的工具有用的附加元数据,并具有为库中定义的指令/组件提供建议的能力。
- 通过减小入口点清单的大小和清单中的缓存技术来实现性能改进。 另外,依赖项的缓存是在入口点清单中完成的,并从那里读取,而不是每次都进行计算。 以前,即使不需要处理入口点,ngcc(Angular Ivy兼容性编译器)也将解析入口点的文件以计算依赖关系,这对于large_node模块将花费大量时间。
- 为了提高ngcc性能,现在允许立即报告陈旧的锁定文件。 此外,还将存储已解析的tsconfig文件的缓存副本,如果tsconfig路径相同,则可以重复使用该副本。
- 在一项重大更改中,逻辑已更新,涉及格式化午夜的白天。 当使用
b
或B
格式代码格式化时间时,呈现的字符串不能正确处理跨越几天的白天。 相反,逻辑回落到AM
的默认情况。 此逻辑已更新,因此它可以匹配在午夜之后的一天中的时间,因此它现在将呈现正确的输出,例如at night
英语的at night
。 使用formatDate()
或DatePipe
或b
和B
格式代码的应用程序将受到此更改的影响。 - 对于路由器,
CanLoad
保护器现在可以返回Urltree
。 返回Urltree
的CanLoad
防护Urltree
取消当前导航并重定向。 这与CanActivate
守卫可用的当前行为匹配,该行为也已添加。 这不会影响预加载。CanLoad
保护程序会阻止任何预加载; 带有CanLoad
防护的任何路由都不会被预加载,并且防护也不会作为预加载的一部分执行。 - 微语法表达式的ExpressionBinding与ParsedProperty的ExpressionBinding中正确值范围的传播,这又会将范围传播到模板AST(VE和Ivy)。 该建议也适用于编译器。
- 在对内核的修复中,会将逻辑添加到未修饰的类迁移中,以修饰使用Angular功能的未修饰类的派生类。
- 在重大更改中,Urlmatcher的类型将反映出它始终可以返回null。
- 对于服务人员,已修复了一种情况,即当任务长期运行或超时时,服务人员可能永远不会注册。
- 已经进行了许多错误修复,包括编译器避免了有Kong数组中未定义的表达式,以及内核避免了导入不存在的符号时的迁移错误 。 在Terser内联bug的核心中也有一种解决方法。 另一个错误修复程序正确地标识了受TestBed中的替代影响的模块 。
- Angular NPM不再包含某些jsdoc注释来支持Closure Compiler的高级优化。 这是一个重大变化。 软件包中对Closure Compiler的支持已经试验并中断了一段时间。 使用Closure Compiler的任何人最好直接使用从源代码构建的Angular软件包,而不是使用NPM上发布的版本。 作为临时的解决方法,用户可以考虑将其当前的构建管道与Closure标志
--compilation_level=SIMPLE
。 该标志将确保构建管道生成可构建的,可运行的工件,但由于禁用了高级优化而增加了有效负载大小。
翻译自: https://www.infoworld.com/article/3537449/whats-new-in-angular-10.html
以上是浅谈Angular10中的新功能的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Python和JavaScript开发者的薪资没有绝对的高低,具体取决于技能和行业需求。1.Python在数据科学和机器学习领域可能薪资更高。2.JavaScript在前端和全栈开发中需求大,薪资也可观。3.影响因素包括经验、地理位置、公司规模和特定技能。

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

如何在JavaScript中将具有相同ID的数组元素合并到一个对象中?在处理数据时,我们常常会遇到需要将具有相同ID�...

学习JavaScript不难,但有挑战。1)理解基础概念如变量、数据类型、函数等。2)掌握异步编程,通过事件循环实现。3)使用DOM操作和Promise处理异步请求。4)避免常见错误,使用调试技巧。5)优化性能,遵循最佳实践。

实现视差滚动和元素动画效果的探讨本文将探讨如何实现类似资生堂官网(https://www.shiseido.co.jp/sb/wonderland/)中�...

深入探讨console.log输出差异的根源本文将分析一段代码中console.log函数输出结果的差异,并解释其背后的原因。�...

探索前端中类似VSCode的面板拖拽调整功能的实现在前端开发中,如何实现类似于VSCode...
