亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Angular中依賴注入模式是什么

發布時間:2021-04-23 10:47:16 來源:億速云 閱讀:162 作者:小新 欄目:web開發

這篇文章主要介紹Angular中依賴注入模式是什么,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

Angular 依賴注入模式

依賴注入: Dependency Injection 簡稱 DI

依賴注入模式要解決的問題

開發中, 會經常遇見對象的實例化, 當多個對象之間存在依賴時, 手工實例化會特別麻煩。

如果一個對象A要依賴對象 B, 那么對象 A 不需要明確地去實例化B對象, B 會由外部機制注入進來, 對象 A 只需要聲明一個B對象就行。 這就是依賴注入要解決的問題。

與依賴注入經常同時出現的另一個概念叫做控制反轉

控制反轉: Inversion of Control 簡稱 IOC, 是指將依賴的控制權從代碼的內部反轉到代碼的外部。

依賴注入控制反轉是一體兩面, 表達的是一個思想。 依賴注入側重于描述手段, 即如何實現控制反轉, 控制反轉側重于描述目的, 即目的是將依賴的控制權從代碼的內部反轉到代碼的外部。

相關教程推薦:《angular教程》

依賴注入模式的好處

  • 松耦合,可重用

  • 提高組件的可測試性

Angular 如何實現依賴注入

注入器

每個組件都有一個注入器實例, 負責注入組件需要的對象。 注入器是 Angular 提供的一個服務類。 一般情況下不用直接調用注入器的方法, 注入器會自動通過組件的 構造函數(constructor) 將組件需要的對象注入進組件。 提供器會告訴注入器如何創建實例。

提供器

為了讓注入器知道注入的對象如何實例化,需要指定提供器,一般情況下,我們會通過組件或模塊的 providers 屬性聲明需要提供的對象。

一般聲明方式
providers:[{provide:AService, useClass: AServivce}] <=> providers:[AService]
provide 屬性:指定了提供器的令牌(token)
useClass 屬性:表示實例化方式是 new
工廠方法聲明方式
使用 useFactory 方式實例化對象
providers:[
  {
    provide:AService, 
    useFactory: (bService: BService) => {
      ....
    },
    deps:[BService] //deps聲明工廠方法所依賴的服務。
    ]
工廠方法創建的對象是單例對象

在構造函數(constructor)中聲明的對象,會根據類名去匹配提供器(providers)中的令牌(token),然后根據 useClass 屬性的值去實例化指定的對象。

提供器注入規則
  • 當一個提供器聲明在模塊時,對所有組件都是可見的,所有組件都可以注入;

  • 當一個提供器聲明在組件時,只對聲明它的組件和子組件可見,其他組件不可見;

  • 當聲明在模塊的提供器與聲明在組件的提供器具有相同 token 時,聲明在組件的提供器會覆蓋聲明在模塊的提供器;

  • 一般情況下,我們都應該在模塊中聲明提供器。

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

向AI問一下細節

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

AI

延寿县| 砀山县| 三亚市| 扎赉特旗| 广河县| 八宿县| 宣武区| 久治县| 莲花县| 威远县| 油尖旺区| 都昌县| 虞城县| 德格县| 尉犁县| 滦南县| 五台县| 太仆寺旗| 锡林郭勒盟| 祁门县| 上饶市| 土默特左旗| 淳安县| 武清区| 房产| 泸定县| 获嘉县| 茶陵县| 铜山县| 子洲县| 临朐县| 定远县| 柯坪县| 霞浦县| 达日县| 虹口区| 毕节市| 温泉县| 鸡泽县| 五河县| 五华县|