最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Angular7創(chuàng)建項目、組件、服務(wù)以及服務(wù)的使用

 更新時間:2019年02月19日 09:45:37   作者:朋也  
這篇文章主要介紹了Angular7創(chuàng)建項目、組件、服務(wù)以及服務(wù)的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

三大前端項目就剩angular沒學(xué)了,在網(wǎng)上找了幾個教程,這里總結(jié)一下,方便以后用到時查閱

創(chuàng)建項目

首先安裝cli工具

npm install -g @angular/cli

創(chuàng)建一個空項目, 有兩處要選擇的,一個是路由,我這里是要路由的,還有一個開發(fā)css的語言,我這里選擇scss,就不截圖了,選完后會自動通過yarn安裝依賴,稍等一會就好了

ng new pybbs-front-angular

創(chuàng)建好了,運行 npm run start 或者 ng serve 啟動服務(wù),然后就可以在瀏覽器里打開 http://localhost:4200/ 地址查看啟動后的首頁了

創(chuàng)建組件

命令 ng g component user 執(zhí)行完后,會在 src/app 目錄下生成一個user的文件夾,里面有四個文件

如果想把組件都放在一個文件夾里管理,也可以在創(chuàng)建的時候加上一個文件夾名字,比如把所有的組件都放在 components 文件夾里,命令就是這樣的 ng g component components/user

頁面名 說明
user.component.html 組件模板文件
user.component.scss 組件的樣式文件
user.component.spec.ts 組件測試文件
user.component.ts 組件文件

使用命令創(chuàng)建組件有個好處就是cli會自動把這個組件引入到 src/app/app.module.ts 文件里,這樣直接在其它文件里使用 src/app/user/user.component.ts里定義的selector,一般這個名字都是 app-xxx 后面xxx就是這個模塊的名字,比如這里的user模塊,就是 app-user

生命周期

angular的生命周期有很多,看下下圖

這里只介紹二個

方法 說明
ngOnInit 組件加載時初始化變量或者網(wǎng)絡(luò)請求時代碼寫在這里面
ngAfterViewInit 如果想對頁面進行dom操作,最好在這個方法里操作,這個方法是在頁面dom元素都加載完成后才調(diào)用的

創(chuàng)建服務(wù)

命令 ng g service user 執(zhí)行完后,cli會自動創(chuàng)建兩個文件在 src/app/user 文件夾里

如果想把服務(wù)也都放在一個文件夾里管理,可以在命令上加上一個服務(wù)的文件夾名字,如 ng g service services/user

服務(wù)文件名 說明
user.service.ts 組件提供服務(wù)的主文件
user.service.spec.ts 組件提供服務(wù)文件的測試文件,寫對服務(wù)測試的代碼都放在這里面

服務(wù)創(chuàng)建好了之后,沒有創(chuàng)建組件那么方便了,還需要自己配置一下,打開 src/app/app.component.ts 文件

在文件內(nèi)引入,然后將服務(wù)注入到 providers 里

import { UserService } from './user/user.service';

@NgModule({
 providers: [
  UserService
 ]
})

首先添加一個服務(wù) user.service.ts

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs';

@Injectable({
 providedIn: 'root'
})
export class TopicService {

 constructor(private http: HttpClient) { }

 fetchGithubApi() {
  return new Observable((observe) => {
   const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };
   this.http.get('https://api.github.com', httpOptions)
    .subscribe((data: any) => {
     observe.next(data.detail);
     // 如果有錯誤,通過 error() 方法將錯誤返回
     // observe.error(data.description);
    });
  });
 }
}

打開 user.component.ts 文件,使用這個服務(wù)里定義的方法,代碼如下

引入服務(wù)文件,然后初始化,這里初始化有兩種方式,一種 private userService: UserService = new UserService(),另一種是通過構(gòu)造方法注入

import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { UserService } from './user.service';

@Component({
 selector: 'app-user',
 templateUrl: './user.component.html',
 styleUrls: ['./user.component.scss']
})
export class UserComponent implements OnInit {

 constructor(
  private userService: UserService
 ) { }

 ngOnInit() {
  this.userService.fetchGithubApi()
   .subscribe(data => console.log(data), error => console.log(error));
 }

}

說明:上面例子中請求接口用的是 angular 內(nèi)置好的 rxjs 模塊,你也可以換成流行的 axios 或者其它的框架

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • angular inputNumber指令輸入框只能輸入數(shù)字的實現(xiàn)

    angular inputNumber指令輸入框只能輸入數(shù)字的實現(xiàn)

    這篇文章主要介紹了angular inputNumber指令輸入框只能輸入數(shù)字的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • AngularJS 自定義過濾器詳解及實例代碼

    AngularJS 自定義過濾器詳解及實例代碼

    這篇文章主要介紹了AngularJS 自定義過濾器,這里整理了相關(guān)資料及示例代碼,有興趣的小伙伴可以參考下
    2016-09-09
  • AngularJs Injecting Services Into Controllers詳解

    AngularJs Injecting Services Into Controllers詳解

    本文主要介紹AngularJs Injecting Services Into Controllers的知識,這里整理了一下相關(guān)資料,及示例代碼,幫助大家學(xué)習(xí)和理解,有興趣的小伙伴可以參考下
    2016-09-09
  • 詳解webpack+angular2開發(fā)環(huán)境搭建

    詳解webpack+angular2開發(fā)環(huán)境搭建

    這篇文章主要介紹了詳解webpack+angular2開發(fā)環(huán)境搭建,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Angularjs的ng-repeat中去除重復(fù)數(shù)據(jù)的方法

    Angularjs的ng-repeat中去除重復(fù)數(shù)據(jù)的方法

    這篇文章主要介紹了Angularjs的ng-repeat中去除重復(fù)數(shù)據(jù)的方法,涉及AngularJS針對重復(fù)數(shù)據(jù)的遍歷與過濾技巧,需要的朋友可以參考下
    2016-08-08
  • Angular6項目打包優(yōu)化的實現(xiàn)方法

    Angular6項目打包優(yōu)化的實現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于Angular6項目打包優(yōu)化的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Angular6具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Angular懶加載機制刷新后無法回退的快速解決方法

    Angular懶加載機制刷新后無法回退的快速解決方法

    使用oclazyload懶加載angular的模塊,刷新頁面后,單擊回退按鈕無法返回上一個頁面.怎么回事呢?下面小編給大家?guī)砹薬ngular懶加載機制刷新后無法回退的快速解決方法,非常不錯,感興趣的朋友參考下
    2016-08-08
  • Angular 向組件傳遞模板的兩種方法

    Angular 向組件傳遞模板的兩種方法

    這篇文章主要介紹了Angular 向組件傳遞模板的兩種方法,第一種方式<ng-content>第二種方式是NgTemplateOutlet 指令及各種使用方式介紹,需要的朋友可以參考下
    2018-02-02
  • AngularJS實現(xiàn)一次監(jiān)聽多個值發(fā)生的變化

    AngularJS實現(xiàn)一次監(jiān)聽多個值發(fā)生的變化

    這文章給大家介紹了如何利用AngularJS一次監(jiān)聽多個值發(fā)生的變化,文中通過示例代碼演示,這樣更方便大家理解學(xué)習(xí),有需要的可以參考借鑒。
    2016-08-08
  • 詳解Angular2中Input和Output用法及示例

    詳解Angular2中Input和Output用法及示例

    這篇文章主要介紹了詳解Angular2中Input和Output用法及示例,對于angular2中的Input和Output可以和AngularJS中指令作類比,有興趣的可以了解一下
    2017-05-05

最新評論

疏附县| 乐山市| 黔西| 巴东县| 内江市| 黔东| 宜阳县| 邵东县| 玛纳斯县| 板桥市| 南华县| 饶河县| 桑植县| 拜城县| 津南区| 宝清县| 贵港市| 泊头市| 海门市| 新建县| 宜城市| 浦县| 水城县| 晋宁县| 沐川县| 隆德县| 融水| 永胜县| 康定县| 双牌县| 富阳市| 枣强县| 伽师县| 莱芜市| 时尚| 凭祥市| 鹿邑县| 四子王旗| 富裕县| 景东| 洪江市|