热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mavenupdate自动修改dynamicwebmodule_Angular8.0正式发布!支持更多Web标准

作者|StephenFluin译者|王强Angular8.0.0版本正式发布了!8.0是重大版本升级,整个平台,包括框架、AngularM
f4cdae5c22a09d08c614d78a5ea7212b.png 作者 | Stephen Fluin 译者 | 王强 Angular 8.0.0 版本正式发布了!8.0 是重大版本升级,整个平台,包括框架、Angular Material 和 CLI 都同步升级到了新版。Angular 8.0 版缩短了应用在现代浏览器上的启动时间,提供了用于访问 CLI 的新 API,并使 Angular 支持更多 Web 标准,追上了 Web 生态的前沿发展趋势。 如何更新?

用户可以访问 update.angular.io 以获取新版详细信息和升级指导,大多数开发者可以使用以下命令开始更新:

ng update @angular/cli @angular/core默认进行差异加载

差异加载是浏览器根据自己的能力来选择加载新式或旧式 Javascript 的过程。现在我们默认开启此功能,为应用提供新版构建(es2015)和老式构建(es5)。这样当用户加载应用时将自动获得所需的包。

如果你使用的是 ng update,Angular 会更新你的 tsconfig.json 以加入此功能。Angular 的 CLI 会查看 tsconfig.json 中的 target JS 级别,以判断是否启用差异加载功能。

{ "compilerOptions": { … "module": "esnext", "moduleResolution": "node", … "target": "es2015", …},

当 target 设置为 es2015 时,Angular 会生成并标记两个包。

运行时,浏览器使用脚本标记上的属性来加载正确的包。

// 新版 JS // 老式 JS

在 angular.io 上,为现代浏览器节省了超过 40kB 的初始包大小。根据社区反馈,应用程序通常可以节省 7-20%的捆绑包大小,具体取决于用户使用了多少新版 Javascript 功能。

f3f28d068548596c382afc93df23bb75.png

angular.io 上的包大小缩小了大约 41KB

在此处查阅有关差异加载的详细信息。

https://v8.angular.io/guide/deployment#differential-loading

路径配置使用动态导入

我们强烈建议用户使用路由懒加载应用的一些部分。可以在路由配置中使用 loadChildren 键启用此功能。

旧版是这样的:

{path: '/admin', loadChildren: './admin/admin.module#AdminModule'}

这种语法是为 Angular 定制的,并内置到了我们的工具链中。在新版 8.0 中我们换成了符合行业标准的动态导入。

新版变成了:

{path: `/admin`, loadChildren: () => import(`./admin/admin.module`).then(m => m.AdminModule)}

这将改善 VSCode 和 WebStorm 等编辑器对 Angular 的支持能力,现在它们就能正确理解并为用户验证这些导入了。

如果你使用的是 ng update,Angular 将自动更新代码以应用新方式。

CLI 中的构建器 API

就像 Schematics 能让你输入 ng new、ng generate、ng add 和 ng update 一样,我们发布的新版构建器 API 能让你输入 ng build、ng test 和 ng run 来执行构建和部署等任务。

可以查看介绍这些新 API 的博客文章,或查阅 API 文档

https://blog.angular.io/introducing-cli-builders-d012d4489f1b

https://v8.angular.io/guide/cli-builder

我们也在与云服务商合作以利用这些 API。现在你可以试一下最新版本的 AngularFire,它增加了一个 deploy 命令,让构建和部署到 Firebase 的工作变得非常简单:

ng add @angular/fireng run my-app:deploy

安装 AngularFire 后,这个部署命令将以 AngularFire 建议的方式构建和部署你的应用程序。

CLI 中的 Workspace API

以前,使用 Schematics 的开发者必须手动打开并修改 angular.json 来更改 workspace 配置。在 8.0 版本中我们引入了一个新的 API,使开发者能更容易地读取和修改这个文件。

在此查阅有关可用的 Workspace API 更多信息

https://github.com/angular/angular-cli/tree/master/packages/angular_devkit/core#workspaces

支持 Web Worker

如果你需要运行一些 CPU 密集任务,使用 Web Workers 就能很好地加快应用的运行速度。使用 Web Workers 可以将诸如图像或视频操作之类的任务挂载到后台线程。我们在 angular.io 上使用 Web Workers 进行应用内搜索索引。

你现在可以从 CLI 生成新的 Web Workers,要将新生成的 worker 添加到项目中,只需运行:

ng generate webWorker my-worker

添加了 Web Workers 后就可以在应用程序中正常使用了,CLI 能正确地绑定并拆分它的代码:

const worker = new Worker(`./my-worker.worker`, { type: `module` });

可在此查阅关于 Angular CLI 中 Web Workers 的更多信息

https://v8.angular.io/guide/web-worker

AngularJS 迁移改进

如果你在 AngularJS 应用中使用 location 服务,Angular 现在有了一个 LocationUpgradeModule 提供统一的位置服务,将定位任务从 AngularJSlocation 服务迁移到了 Angular Location 服务上。这会改善使用 ngUpgrade,需要在 AngularJS 和 Angular 部分中来回切换的应用的表现。

在此查阅有关统一的 Angular 位置服务的更多信息

https://v8.angular.io/guide/upgrade#using-the-unified-angular-location-service

我们还记录了从 Angular 中懒加载应用中 AngularJS 部分的最佳实践,这样就能更容易地迁移最常用的功能,并且只为应用程序的子集加载 AngularJS。

在此查阅关于懒加载 AngularJS 的更多信息

https://v8.angular.io/guide/upgrade#create-a-service-to-lazy-load-angularjs

新的弃用指南

Angular 的重大版本都是高度稳定的,每个重大版本都会对语义版本做一致管理。对于公共 API 而言,我们对旧功能的支持周期是 N+2 版本,意味着 8.1 中不推荐使用的功能将继续在下两个重大版本(9 和 10)中得到支持。例如,我们在 8.0 中弃用了 platform-webworker 功能。

现在用户更容易在 Angular 中找到弃用和删除的功能说明。查阅新的弃用指南了解所有弃用功能的完整列表。

https://v8.angular.io/guide/deprecations

英文原文

https://blog.angular.io/version-8-of-angular-smaller-bundles-cli-apis-and-alignment-with-the-ecosystem-af0261112a27


7a06a2ddf64c9d7edfe9b582c66da5e4.gif

点个在看少个 bug ?




推荐阅读
  • 本文详细介绍了如何在Kendo UI for jQuery的数据管理组件中,将行标题字段呈现为锚点(即可点击链接),帮助开发人员更高效地实现这一功能。通过具体的代码示例和解释,即使是新手也能轻松掌握。 ... [详细]
  • 深入解析SpringMVC核心组件:DispatcherServlet的工作原理
    本文详细探讨了SpringMVC的核心组件——DispatcherServlet的运作机制,旨在帮助有一定Java和Spring基础的开发人员理解HTTP请求是如何被映射到Controller并执行的。文章将解答以下问题:1. HTTP请求如何映射到Controller;2. Controller是如何被执行的。 ... [详细]
  • 并发编程 12—— 任务取消与关闭 之 shutdownNow 的局限性
    Java并发编程实践目录并发编程01——ThreadLocal并发编程02——ConcurrentHashMap并发编程03——阻塞队列和生产者-消费者模式并发编程04——闭锁Co ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 我有一个SpringRestController,它处理API调用的版本1。继承在SpringRestControllerpackagerest.v1;RestCon ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • Redux入门指南
    本文介绍Redux的基本概念和工作原理,帮助初学者理解如何使用Redux管理应用程序的状态。Redux是一个用于JavaScript应用的状态管理库,特别适用于React项目。 ... [详细]
  • 深入解析Spring启动过程
    本文详细介绍了Spring框架的启动流程,帮助开发者理解其内部机制。通过具体示例和代码片段,解释了Bean定义、工厂类、读取器以及条件评估等关键概念,使读者能够更全面地掌握Spring的初始化过程。 ... [详细]
  • ssm框架整合及工程分层1.先创建一个新的project1.1配置pom.xml ... [详细]
  • 本文详细介绍如何使用CSS自定义HTML5视频播放器的样式,涵盖常见属性及跨浏览器兼容性问题。发布时间:2020-09-14 14:46:29;来源:亿速云;阅读量:58;作者:小新。 ... [详细]
  • 2018-2019学年第六周《Java数据结构与算法》学习总结
    本文总结了2018-2019学年第六周在《Java数据结构与算法》课程中的学习内容,重点介绍了非线性数据结构——树的相关知识及其应用。 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 本文介绍如何从字符串中移除大写、小写、特殊、数字和非数字字符,并提供了多种编程语言的实现示例。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
author-avatar
手机用户2702936061
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有