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

Angular設(shè)計模式hierarchical?injector實現(xiàn)代碼復(fù)用模塊化

 更新時間:2023年10月29日 14:50:38   作者:JerryWang_汪子熙  
這篇文章主要為大家介紹了Angular設(shè)計模式hierarchical?injector實現(xiàn)代碼復(fù)用模塊化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

Angular 的 "dependency injection"

Angular 的 "dependency injection" 是一種設(shè)計模式,它可以幫助我們更有效地組織和共享代碼。在 Angular 中,我們可以通過注入服務(wù)(一個常見的可注入對象類型)到組件、指令或其他服務(wù)中,實現(xiàn)代碼的復(fù)用和模塊化。

Angular 的注入器系統(tǒng)是分層級的,也被稱為 "hierarchical injector"。這意味著你可以在不同的層級創(chuàng)建和注入服務(wù),從而決定它們的作用范圍和共享行為。

工作原理

舉個例子,假設(shè)你有一個 LoggerService 用于記錄應(yīng)用的日志信息。你可以在應(yīng)用的根模塊 AppModule 中提供這個服務(wù):

import { LoggerService } from './logger.service';
@NgModule({
  providers: [ LoggerService ],
  ...
})
export class AppModule { }

這樣,LoggerService 就成了一個單例服務(wù),整個應(yīng)用只會有一個 LoggerService 實例。你可以在任何需要的地方注入這個服務(wù):

import { LoggerService } from './logger.service';
@Component({
  ...
})
export class SomeComponent {
  constructor(private logger: LoggerService) {
    this.logger.log('Hello World!');
  }
}

然而,有時候你可能希望在某個特定的組件及其子組件中使用一個獨立的 LoggerService 實例。這時,你就可以在那個組件的元數(shù)據(jù)中提供 LoggerService

import { LoggerService } from './logger.service';
@Component({
  providers: [ LoggerService ],
  ...
})
export class SomeSpecificComponent {
  constructor(private logger: LoggerService) {
    this.logger.log('Hello Specific World!');
  }
}

在這種情況下,SomeSpecificComponent 及其所有子組件中注入的 LoggerService 都會是這個新的實例,而不是在 AppModule 中提供的單例。

這就是 Angular 的 "hierarchical injector" 的工作原理。每個注入器都有一個父注入器,當(dāng)你嘗試在某個組件中注入服務(wù)時,Angular 會首先在該組件的注入器中查找該服務(wù),如果沒找到,就會去父注入器中查找,這個過程會一直持續(xù)到根注入器。如果在整個過程中都沒找到該服務(wù),Angular 就會拋出錯誤。

以上就是Angular設(shè)計模式hierarchical injector實現(xiàn)代碼復(fù)用模塊化的詳細內(nèi)容,更多關(guān)于Angular hierarchical injector的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解angularjs 關(guān)于ui-router分層使用

    詳解angularjs 關(guān)于ui-router分層使用

    本篇文章主要介紹了詳解angularjs 關(guān)于ui-router分層使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Angular利用trackBy提升性能的方法

    Angular利用trackBy提升性能的方法

    這篇文章主要介紹了在Angular中利用trackBy來提升性能的實現(xiàn)方法,需要的朋友可以參考下
    2018-01-01
  • 詳解Angular依賴注入

    詳解Angular依賴注入

    依賴注入(DI -- Dependency Injection)是一種重要的應(yīng)用設(shè)計模式。Angular里面也有自己的DI框架,在設(shè)計應(yīng)用時經(jīng)常會用到它,它可以我們的開發(fā)效率和模塊化程度。 Angular系統(tǒng)中通過在類上添加@Injectable裝飾器來告訴系統(tǒng)這個類(服務(wù))是可注入的。
    2021-05-05
  • Angular 4環(huán)境準備與Angular cli創(chuàng)建項目詳解

    Angular 4環(huán)境準備與Angular cli創(chuàng)建項目詳解

    Angular4.0來了,更小,更快,改動少,所以下面這篇文章主要給大家介紹了關(guān)于Angular 4環(huán)境準備與學(xué)會使用Angular cli創(chuàng)建項目的相關(guān)資料,文中給出了詳細的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面來一起看看吧。
    2017-05-05
  • angular.js+node.js實現(xiàn)下載圖片處理詳解

    angular.js+node.js實現(xiàn)下載圖片處理詳解

    這篇文章主要介紹了angular.js+node.js實現(xiàn)下載圖片處理的相關(guān)資料,文中介紹的非常詳細,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • Angular4學(xué)習(xí)教程之DOM屬性綁定詳解

    Angular4學(xué)習(xí)教程之DOM屬性綁定詳解

    這篇文章主要給大家介紹了關(guān)于Angular4學(xué)習(xí)教程之DOM屬性綁定的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • AngularJS表達式講解及示例代碼

    AngularJS表達式講解及示例代碼

    本文主要講解AngularJS表達式,這里整理了相關(guān)資料和提供示例代碼以及實現(xiàn)效果圖,有需要的小伙伴可以參考下
    2016-08-08
  • 淺談Angular中ngModel的$render

    淺談Angular中ngModel的$render

    下面小編就為大家?guī)硪黄獪\談Angular中ngModel的$render。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • AngularJS基礎(chǔ) ng-list 指令詳解及示例代碼

    AngularJS基礎(chǔ) ng-list 指令詳解及示例代碼

    本文主要介紹AngularJS ng-list 指令,這里幫大家整理了ng-list指令的基本資料,并附有示例代碼,有需要的小伙伴可以參考下
    2016-08-08
  • AngularJS學(xué)習(xí)第一篇 AngularJS基礎(chǔ)知識

    AngularJS學(xué)習(xí)第一篇 AngularJS基礎(chǔ)知識

    這篇文章主要介紹了AngularJS學(xué)習(xí)第一篇,分享了有關(guān)AngularJS的基礎(chǔ)知識,主要包括指令、過濾器等,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02

最新評論

封开县| 雷州市| 山西省| 富裕县| 屏东市| 左权县| 龙南县| 洪泽县| 新化县| 清河县| 共和县| 阿勒泰市| 正镶白旗| 成都市| 当阳市| 林州市| 左云县| 陆良县| 博爱县| 平山县| 文化| 麦盖提县| 巴楚县| 岳阳市| 平遥县| 定日县| 望城县| 广昌县| 潞西市| 清丰县| 宁强县| 文登市| 共和县| 北票市| 南充市| 靖安县| 乡城县| 乌兰察布市| 西城区| 西平县| 会宁县|