设为首页 加入收藏

TOP

Angular8稳定版修改概述(二)
2019-09-17 19:00:39 】 浏览:61
Tags:Angular8 稳定 修改 概述
(options, context) { return new Promise((resolve, reject) => { // set of commands }) } createBuilder(customBuild);

您可以在此处查看内置的Angular构建器。

懒加载的变动

新版本不推荐使用loadChildren:string 懒惰加载模块的语法。
在8.0.0之前,懒加载的使用方法如下:

loadChildren: './lazy/lazy.module#LazyModule';

现在的使用方法如下:

loadChildren: () => import('./lazy/lazy.module').then(m => m.LazyModule)

如果你有很多的懒加载的模块,并希望通过软件包做到这一点,可以点击此处参考

对AngularJS API中$location的支持

Angular团队希望为使用AngularJS的所有开发人员提供支持,并帮助他们升级到Angular。该团队现在在升级时添加了对$ location服务的支持。添加了angular/common/upgrade这个新包。

  1. 允许从位置服务检索状态的功能。
  2. 添加跟踪所有位置更改的功能。
  3. 它将允许您读取hostname protocol port searchAngularJS中可用的属性。
  4. MockPlatformLocation 添加了API以测试位置服务。

Web Worker

Angular 8中添加了Web worker支持。现在,您可以添加Web worker并将要在后台运行的耗时进程委派给Web worker。运行以下命令以使用Angular CLI生成新的Web worker:

ng g webWorker <name>

Service Worker

随着PWA的使用日益增长,对Service Worker进行了许多改进。

  1. 一项改进是SwRegistrationOptions增加了选项。
  2. 在一个域中支持多个应用。
  3. 阅读Angular Doc上有关服务工作者的更多信息。

表单改进

  1. 添加了markAllAsTouched方法以标记所有的控件FormGroupas as touched。如果要触发一个表单组中所有控件的验证,这个方法将是非常有用的。之前我们不得不使用下面的代码片段来实现相同的功能:
validateFormAndDisplayErrors(form: FormGroup) {
  Object.keys(form.controls).map((controlName) => {
    form.get(controlName).markAsTouched({onlySelf: true});
  });
}
  1. 从FormArray中清除所有元素

以前要删除所有元素,formArray 我们必须循环删除第一个元素直到空:

while(formArray.length){ 
  formArray.removeAt(0); 
}

现在就不需要那样操作了,直接使用clear方法就可以完成:

formArray.clear()

对Typescript 3.4.x的支持

Angular现在使用TypeScript 3.3(v7使用3.2.x)。没有太多突破性的变化 - 所以你可能应该做得很好。你可以在这里查看。

性能改善

为每个请求ServerRendererFactory2创建一个新的实例DomElementSchemaRegistry,这是非常昂贵的。现在它将共享全局实例DomElementSchemaRegistry.

弃用的API

从 @angular/platform-browser中删除了已弃用的DOCUMENT

从@angular/platform-browser中移除了DOCUMENT。如果您使用DOCUMENT from @angular/platform-browser,则应从此处开始导入@angular/common。

@angular/http

@angular/http在Angular 5中不推荐使用package,但由于@angular/platform-server依赖于它,所以仍然可用。从现在它已从包列表中删除。

配置ViewChild / ContentChild查询的时间

使用此功能时,必须提供静态标志以定义何时需要解析ViewChild和ContentChild实例。

使用此功能时,必须提供静态标志以定义何时需要解析ViewChild和ContentChild实例。

// Ensure Change Detection runs before accessing the instance
@ContentChild('foo', { static: false }) foo!: ElementRef;
// If you need to access it in ngOnInt hook
@ViewChild(TemplateRef, { static: true }) foo!: TemplateRef;

以上功能不适用于ViewChildren或ContentChildren。它们将在变更检测运行后解析。

需要注意的是,设置static: true将不允许您从动态模板分辨率(例如*ngIf)获得结果。

添加了原理图支持以将现有代码迁移到此语法,因为将使用此语法Ivy 。您可以运行ng update @angular/core以迁移现有代码。

Angular Material

Angular Material工程重命名为Angular Components。包还是跟以前保持一样的。

结论

以上就是angular 8版本的一些改动。总体来说变化不是很大,延续了angular每年一个稳定版的习惯。
原文链接

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇localStorage&sessionStorage&Coo.. 下一篇聊聊webpack 4

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目