91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Angular6中服務和依賴注入的示例分析

發布時間:2021-09-03 11:02:15 來源:億速云 閱讀:101 作者:小新 欄目:web開發

這篇文章主要介紹Angular6中服務和依賴注入的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

在開發中,組件一般用來寫視圖有關的功能,服務則寫一些其他的邏輯,諸如從服務器獲取數據、驗證用戶輸入或直接往控制臺中寫日志等工作.

先解釋兩個概念:

  1. Providers(提供商):是個比較抽象的名詞,我們把它想象為'圖紙'更好理解一些,就比如我們想要生產汽車,就需要先有汽車的圖紙,圖紙上記錄了生產工藝和材料尺寸之類,這樣汽車才生產的出來.provider通常就是自己寫的服務類.

  2. Injector(注入器):就是字面上的意思,將某一類事物注入到另一類事物中的工具.angular應用在啟動時,會自動創建.

假想一個去醫院看病的過程:

找醫生看病判斷病情,醫生開處方 --> 處方交給護士 --> 護士小姐姐根據處方給你注射藥物.

這里醫生開的處方是providers,將處方交給護士則是將providers注冊到injector,護士小姐姐是injector

angular中有很多方式可以將providers注冊到injector:

@Injectable 裝飾器

在服務類的 @Injectable 裝飾器中

  //service
  @Injectable({
    providedIn: 'root',
  })

providedIn: 'root' 告訴 Angular在根注入器中注冊這個圖紙.root 還可以是某一個具體的模塊名.

這種方式注冊,在代碼編譯打包時,可以執行搖樹優化,這會移除所有沒在應用中使用過的服務。搖樹優化會使打包體積更小。

@NgModule 中的 providers

在模塊的 @NgModule

  //service
  @Injectable()
  //module
  @NgModule({
    providers: [
      UserService,
      { provide: APP_CONFIG, useValue: HERO_DI_CONFIG }
    ],
  })

這種方式注冊,可以對圖紙進行一些額外的配置.

note:在@NgModule中注冊的服務,在圖紙中也需要寫@Injectable()裝飾器

在組件中注冊

在組件的 @Component 中

  @Component({
  selector: 'app-heroes',
  providers: [ HeroService ]

這種方式注冊,會注冊到每個組件實例自己的注入器上。(多個組件會有多個注入器)

note:服務在每個注入器的范圍內是單例的。 在任何一個注入器中,最多只會有同一個服務的一個實例。

不提供圖紙

最常見的圖紙是class,但是在配置providers: []時,也可以不提供class圖紙,而是返回對象的工廠函數,或是對象字面量[{ provide: Logger, useClass: Logger }]

也可以使用useValue屬性直接交付一個對象實例,[{ provide: Logger, useValue: silentLogger }]

以上是“Angular6中服務和依賴注入的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

车致| 兰坪| 济源市| 鞍山市| 图们市| 沙田区| 宜章县| 涟水县| 昌图县| 仲巴县| 延津县| 乐都县| 牡丹江市| 青海省| 南康市| 子长县| 柳河县| 柯坪县| 孟津县| 巴东县| 株洲县| 梧州市| 水富县| 岗巴县| 九寨沟县| 龙胜| 西安市| 黄冈市| 阿拉善盟| 长春市| 甘谷县| 吉首市| 巴彦县| 西城区| 安化县| 太谷县| 洪洞县| 遂宁市| 乌海市| 石渠县| 东城区|