Angular版本升级注意事项
最近在使用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下进行管理 |
千万不要试图去研究 研究了很久都整不明白的东西,或许是层次不到,境界未到,也或许是从未在实际的应用场景接触过,这种情况下去研究,只会事倍功半,徒劳一番罢了。能做的就是不断的沉淀知识,保持一颗积极向上的学习心态,相信终有一天所有的困难都会迎刃而解。