最近在使用Angular作为前端框架进行开发时发现各版本存在一定的差异,尤其是对于依赖架包的引入,网上搜集了一些资料进行整理,主要需要注意以下几点。具体示例可查看https://www.cnblogs.com/54hsh/p/11512818.html
1、http的调用,以Angular4.3为分界点
1)、import方式
| 旧版 | 新版(>V4.3) |
|---|---|
|
import { Http } from \'@angular/http\';
|
import { HttpClient } from \'@angular/common/http\';
|
|
import { Headers } from \'@angular/http\';
|
import { HttpHeaders } from \'@angular/common/http\';
|
| import { Request } from \'@angular/http\'; | import { HttpRequest } from \'@angular/common/http\'; |
|
import { Response } from \'@angular/http\';
|
import { HttpResponse } from \'@angular/common/http\'; |
|
......
|
...... |
2)、调用示例,pipe的使用方式以及API命名不一样
| 调用方式 | 旧版 | 新版(>V4.3) |
| get |
http.get(url, options)
.map(this.extractData)
.catch(this.handleError);
|
httpClient.get(url, options)
.pipe(map(this.extractData), catchError(this.handleError));
|
| post |
http.post(url, params, options)
.map(this.extractData)
.catch(this.handleError);
|
httpClient.post(url, params, options)
.pipe(map(this.extractData), catchError(this.handleError));
|
| put |
http.put(url, params, options)
.map(this.extractData)
.catch(this.handleError);
|
httpClient.put(url, params, options)
.pipe(map(this.extractData), catchError(this.handleError));
|
|
delete |
http.delete(url, options)
.map(this.extractData)
.catch(this.handleError);
|
httpClient.delete(url, options)
.pipe(map(this.extractData), catchError(this.handleError));
|
|
调用示例: httpUtil.put(\'http://localhost/sys/menu/edit\' , this.menu)
.subscribe(data => {
if (data.code == CodeEnum.SUCCESS) {
this.msg = "修改成功";
setTimeout(() => { super.goBack() }, 3000);
} else {
this.msg = "修改失败";
}
}, error => this.errorMessage = <any>error);
|
||
2、rxjs的变换,以rxjs6为分界点
1)、import方式
| import类型 | 旧版 | 新版(rxjs6) |
| Observable | import { Observable } from \'rxjs/observable\'; | import { Observable } from \'rxjs\'; |
| map | import \'rxjs/add/operator/map\'; | import { map } from \'rxjs/operators\'; |
| fromPromise | import \'rxjs/add/observable/fromPromise\'; | import { fromPromise } from \'rxjs\'; |
2)、API重命名
| 旧版 | 新版(rxjs6) |
| do() | tap() |
| catch() | catchError() |
| switch() | switchAll() |
| finally() | finalize() |
| throw() | throwError() |
| 新版(rxjs6)operators全部集中到rxjs/operator下进行管理 | |