Angular6 的服務和依賴注入

2021-09-29 18:36:46 字數 804 閱讀 4430

在開發中,元件一般用來寫檢視有關的功能,

服務則寫一些其他的邏輯,諸如從伺服器獲取資料、驗證使用者輸入或直接往控制台中寫日誌等工作.

providers(提供商): provider通常就是自己寫的服務類.

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

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

@injectable 裝飾器

在服務類的 @injectable 裝飾器中

//service

@injectable()

providedin: 『root』 告訴 angular在根注入器中註冊這個圖紙.root 還可以是某乙個具體的模組名.

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

@ngmodule 中的 providers

在模組的 @ngmodule 中

//service

@injectable()

//module

@ngmodule()

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

note:在@ngmodule中註冊的服務,在圖紙中也需要寫@injectable()裝飾器

在元件中註冊

在元件的 @component 中

@component(]**

也可以使用usevalue屬性直接交付乙個物件例項**,**

Angular6的服務和依賴注入

angular 把元件和服務區分開,以提高模組性和復用性。angular 不會強制遵循這些原則。它只會通過依賴注入讓你能更容易地將應用邏輯分解為服務,並讓這些服務可用於各個元件中。在angular中使用服務,首先根據需要的功能,寫乙個服務類 angular中稱為provider 然後將該服務類註冊到...

angular6 依賴注入 學習筆記

檔案目錄 得到的頁面 二.使用工廠和值提供器 把product2.component.ts中的provider屬性去掉 import from angular core import from share product.service import from share anotherproduc...

angular6自定義服務service

angular6.x server ng g service storageserviceservice 是乙個單例,如果放在根路由下,就是在所有的元件都是共享的,因此可以利用service來傳遞和共享資料。import from angular core injectable export cla...