Angular 8正式发布!

Angular 团队今天宣布推出 Angular 8 正式版。

640?wx_fmt=png

作为一个期待已久的重大版本更新,Angular 8 为框架、Angular Material 和命令行界面工具 Angular CLI 带来了大量的改进和新功能。

团队表示 Angular 8 显著减少了在现代浏览器中应用程序的启动时间、提供了用于定制 CLI 的新 API,并让 Angular 与生态系统以及更多的 Web 标准保持一致。

下面继续看看 Angular 8 中值得关注的新特性。

新特性

默认启用差异化加载(Differential loading)

所谓差异化加载就是浏览器会根据自己的状态在现代和旧版本的 JavaScript 之间进行选择的过程。在 Angular 8 中,我们可以通过为应用程序执行现代构建(es2015+)和旧版构建(es5)来默认使用此功能。

具体来说就是,作为构建过程的一部分,Angular CLI 将会分别生成现代(ES2015+)和旧版(ES5)构建的 JavaScript 捆绑包,当用户加载应用程序时,客户端会进行差异化加载,他们将自动获得所需的捆绑包。

差异化加载可显著提升现代浏览器的加载速度和传输间隔时间(TTI),亦即意味着支持 ES2015 的浏览器将能够下载更小、更高效的捆绑包,当然这些包的加载速度和渲染速度都比以往更快。

这项工作主要基于 Manfred Steyer 的 ngx-build-modern 项目,与 Manfred 共同合作开发。

640?wx_fmt=png

上图是 Angular 团队提供的数据,angular.io 网站为现代浏览器节省了超过 40kB 的捆绑包大小。每个网站的数据当然会有差异,主要取决于采用了多少现代的 JavaScript 特性。

新的渲染引擎 Ivy

作为新的渲染引擎,Ivy 旨在彻底缩减代码尺寸并增强系统灵活性。

640?wx_fmt=png

与目前的 Angular View Engine 相比,Ivy 具有以下优势:

  • 通过 Angular 编译器生成的代码更具可读性,更易调试

  • 更快的重建速度

  • 有效减少负载大小,浏览器用于下载和解析应用程序的时间将更短

  • 更好的模板类型检查,以便在项目构建初期就可捕获更多 Bug

  • 优秀的向后兼容性

使用动态导入进行路由配置

在 Angular 8 中,我们可以使用路由以延迟加载部分应用程序,这是通过在路由配置中使用 loadChildren 键来实现的。

在之前的版本中会编写如下的代码:

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

这种语法是专门为 Angular 定制的,并内置到其工具链中。但 Angular 8 将逐渐往行业标准靠拢 —— 使用了动态导入的方式(dynamic imports)。

所以代码会像下面这样:

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

这将改进对 VSCode 和 WebStorm 等开发工具的支持,可以更好理解和验证这些导入。

对 Web Worker 的支持

可能有不少开发者对于 Web Worker 不太熟悉,简单来说就是,开发者可通过 Web Worker 编写运行在主线程之外的代码(例如对图像和视频的操作),以此提升应用程序的运行速度和并行性。

Web Worker 是前端开发中的一项重要创新。在此之前,所有 Web 应用程序只能使用单线程。而随着 Web Worker 的出现,可以将 CPU 分配到单独的硬件线程中,使浏览器环境拥有多线程,从而提升项目开发效率

在 Angular 8 之前,使用 Web Worker 存在这样的问题:在 worker 中运行的代码不能与应用程序的其余部分位于同一 JavaScript 脚本文件中,它必须是分开的因此,对于曾经希望借助 Angular CLI 等工具,自动将 JavaScript 文件拆分、绑定到更少文件夹下的效果往往不佳。

Angular 8 的新特性之一就是改进了使用 Angular CLI 捆绑 WebWorker 的支持,这项改进意味着我们将走向多并发、自动化的 Web Worker 之路。

示例代码:

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

改进从 AngularJS 迁移至新版本的过程

属于 AngularJS(Angular 1.x 系列)的时代已经过去,虽然现在还能接收到团队的 bug 修复补丁,但不会再有任何更新。官方也在积极支持从 Angular 1.x 升级到更新的版本。

Angular Router 添加了向后兼容模式,以降低大型项目的升级成本。Angular Router 可以使用 $route APIs 延迟加载部分 AngularJS 应用程序,从而更容易地升级到 Angular。

目前仍有大量的企业在使用 AngularJS,他们没有升级的原因也很简单,这些应用运行良好,并且在重构时无需太多投入。不过对于使用 AngularJS 进行大型开发的团队,现在正是升级的最佳时间。

Angular 8 不止带来了很多令人称赞的新功能,性能方面的改进也是一大亮点。与 Angular 7 相比,应用程序的启动时间变得更短,耗费的花销也更低。

那么问题来了,各位准备什么时候升级到 Angular 8 呢?

640?wx_fmt=jpeg


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/315721.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET Core 3.0 webapi集成Swagger 5.0

在项目中引用Swashbuckle.AspNetCore和Swashbuckle.AspNetCore.Filters两个dll&#xff0c;在Startup中的ConfigureServices相关配置代码如下 两个重点&#xff1a;1、options.DocumentFilter<HiddenApiFilter>();定义那些接口方法被隐藏2、启用oauth2安全授权访问…

站点部署,IIS配置优化指南

通常把站点发布到IIS上运行正常后&#xff0c;很少会去考虑IIS提供的各种参数&#xff0c;如何配置才是最适合当前站点运行需要的&#xff1f;这篇文章&#xff0c;从基本设置、回收机制、性能、并发、安全性等IIS设置讲解应当如何优化。先来“IIS应用程序池”优化后的参数配置…

张高兴的.NET Core IoT 入门指南:(四)使用 SPI 进行通信

什么是 SPI和上一篇文章的 I2C 总线一样&#xff0c;SPI&#xff08;Serial Peripheral Interface&#xff0c;串行外设接口&#xff09;也是设备与设备间通信方式的一种。SPI 是一种全双工&#xff08;数据可以两个方向同时传输&#xff09;的串行通信总线&#xff0c;由摩托罗…

ASP.NET Core 中使用IHttpClientFactory发出HTTP请求

1.HttpClient类使用存在的问题HttpClient类的使用所存在的问题&#xff0c;百度搜索的文章一大堆&#xff0c;好多都是单纯文字描述&#xff0c;让人感觉不太好理解&#xff0c;为了更好理解HttpClient使用存在的问题&#xff0c;下面让我们通过代码跟示例来描述。using(var cl…

linux 安装 powershell

linux 安装 powershellIntropowershell 已经推出了一个 Powershell Core&#xff0c; 版本号对应 Powershell 6.x&#xff0c;可以跨平台&#xff0c;支持 Linux 和 mac. 这使得对于熟练使用 Powershell 进行开发运维的一些开发者来说无疑是个福音。PowerShell 和 PowerShell C…

精彩回放 | 玩转 VS Code 物联网开发

"Visual Studio Code&#xff1a;物联网开发利器"技术分享圆满落下帷幕&#xff01;感谢韩老师的粉丝们&#xff01;感谢热情的观众朋友们&#xff01;点击文末阅读原文&#xff0c;可以观看视频回放~这几年物联网越来越火&#xff0c;大家都在说物联网&#xff0c;那…

重磅!开放EasyCharts插件源代码!

开源代码地址https://github.com/EasyChart/EasyCharts前 言不知不觉&#xff0c;Excel图表插件EasyCharts已经面世两年啦&#xff0c;今天突然发现百度网盘中的下载次数居然达到近4万&#xff0c;在这里非常感谢大家对EasyCharts的厚爱。由于工作太忙&#xff0c;时间有限&a…

构建可读性更高的 ASP.NET Core 路由

一、前言不知你在平时上网时有没有注意到&#xff0c;绝大多数网站的 URL 地址都是小写的英文字母&#xff0c;而我们使用 .NET/.NET Core MVC 开发的项目&#xff0c;因为在 C# 中类和方法名采用的是 Pascal 命名规范&#xff0c;根据 .NET 框架默认的路由规则&#xff0c;项目…

【18】ASP.NET Core MVC 中的 Model介绍

ASP.NET Core MVC 中的 Model在本视频中&#xff0c;我们将通过一个示例讨论 ASP.NET Core MVC 中的 Model。我们希望最终从 Student 数据库表中查询特定的学生详细信息并显示在网页上&#xff0c;如下所示。MVC 中的模型包含一组表示数据的类和管理该数据的逻辑。 因此&#x…

使用 Powershell 远程连接 windows server

使用 Powershell 远程连接 windows serverIntro最近我们的开发环境增加了一个 windows 服务器&#xff0c;没有界面的&#xff0c;不能直接远程桌面连上去管理&#xff0c;需要使用 Powershell 管理&#xff0c;于是就有了这篇文章的探索。windows服务器配置以下所有命令需要在…

.NET Core WEB API中接口参数的模型绑定的理解

在.NET Core WEB API中参数的模型绑定方式有以下表格中的几种&#xff1a;微软官方文档说明地址&#xff1a;https://docs.microsoft.com/zh-cn/aspnet/core/web-api/?viewaspnetcore-2.1特性 绑定源[FromHeader]请求标头[FromQuery]请求查询字符串参数[FromForm]请求正文中的…

ASP.Net Core Razor 部署AdminLTE框架

1、AdminLTE一个基于 bootstrap 的轻量级后台模板2、AdminLTE 文档在线中文Demo&#xff1a;http://adminlte.la998.com/在线中文文档&#xff1a;http://adminlte.la998.com/documentation/index.htmlGithub&#xff1a;https://github.com/almasaeed2010/AdminLTE/releases3、…

.NET CORE 对接天翼云 OOS

最近&#xff0c;因公司项目需要对接天翼云OOS&#xff0c;在百度多次折腾后&#xff0c;大部分的都是基于java、php 等其他语言&#xff0c;很少基于C#语言的相关资料&#xff0c;即使有也是基于.NET Framwork开发的SDK&#xff0c;内容几乎是千篇一律&#xff0c;很少基于.NE…

盘点618 .NET 程序员必“败”书单

六月到了&#xff0c;有三个节日迎接我们&#xff0c;心中微微一盘算&#xff1a;儿童节和端午节仿佛对我们都不重要。我们期待的只有&#xff1a;618狂欢购物节&#xff01;没错一年一度的618来了,哪些书值得买&#xff1f; 小编盘点了2019年1-5月.NET 相关的图书&#xff0c;…

ApplicationInsights的探测器尝鲜

通常我们可以依靠ApplicationInsights(以下简称ai&#xff09;来收集比如请求(request),依赖项(dependencies),异常(exception)等信息&#xff0c;但是无法收集到比如一个方法&#xff08;方法内部比如没有依赖项调用&#xff09;的信息。很多时候如果一个方法很慢&#xff0c;…

开源/免费界面自动化测试工具对比研究

摘要&#xff1a;随着我行自动化测试实施范围的不断扩大&#xff0c;参与界面自动化测试的应用系统越来越多。我行的应用系统现阶段多采用商用工具QTP&#xff08;UFT&#xff09;作为执行工具来进行界面自动化测试&#xff0c;采购的QTP license是有限的&#xff0c;使得资源的…

使用 ConfigMap 挂载配置文件

使用 ConfigMap 挂载配置文件Intro有一些敏感信息比如数据库连接字符串之类的出于安全考虑&#xff0c;这些敏感信息保存在了 AzureKeyVault 中&#xff0c;最近应用上了 k8s 部署&#xff0c;所以想把 AzureKeyVault 的信息迁移到 ConfigMap&#xff0c;不再依赖 AzureKeyVaul…

SciSharpCube:容器中的SciSharp,.NET机器学习开箱即用

SciSharp Cube在Docker容器中快速体验SciSharp机器学习工具的最新功能。项目地址(原文链接)&#xff1a;https://github.com/SciSharp/SciSharpCube从Docker Hub运行docker run --name scisharp -it -p 8888:8888 scisharpstack/scisharpcube这条命令会拉取最新的SciSharpCube镜…

.NET Core 3中的性能提升(译文)

回顾我们准备推出.NET Core 2.0的时候&#xff0c;我写了一篇博文来介绍.NET已经引入的诸多性能优化中的一部分&#xff0c;我很喜欢把它们放在一起讲述&#xff0c;也收获了很多正面反馈&#xff0c;因此我又给.NET Core 2.1&#xff0c;一个同样高度聚焦于性能的版本&#xf…

程序员修神之路--高并发下为什么更喜欢进程内缓存

菜菜哥&#xff0c;告诉你一个好消息YY妹子&#xff0c;什么好消息&#xff0c;你有男票了&#xff1f;不是啦&#xff0c;我做的一个网站&#xff0c;以前经常由于访问量太大而崩溃&#xff0c;现在我加上了缓存&#xff0c;很稳定啦加的什么缓存呢&#xff1f;我用的redis&am…