zoukankan      html  css  js  c++  java
  • 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下进行管理
        千万不要试图去研究 研究了很久都整不明白的东西,或许是层次不到,境界未到,也或许是从未在实际的应用场景接触过,这种情况下去研究,只会事倍功半,徒劳一番罢了。能做的就是不断的沉淀知识,保持一颗积极向上的学习心态,相信终有一天所有的困难都会迎刃而解。
  • 相关阅读:
    微信小程序之界面交互反馈
    微信小程序引入腾讯地图API方法
    微信小程序动态修改页面标题setNavigationBarTitle
    JavaScript中||和&&的运算
    微信小程序 使用include导入wxml文件注意的问题
    idea中文乱码及maven项目配置问题
    Linux常用命令大全
    2018年深圳,武汉房价走势分析
    redis安装,windows,linux版本并部署服务
    dubbo基础学习总结
  • 原文地址:https://www.cnblogs.com/54hsh/p/11490711.html
Copyright © 2011-2022 走看看