欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

Angular 的 "dependency injection"

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

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

工作原理

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

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

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

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

然而,有時(shí)候你可能希望在某個(gè)特定的組件及其子組件中使用一個(gè)獨(dú)立的 LoggerService 實(shí)例。這時(shí),你就可以在那個(gè)組件的元數(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 都會(huì)是這個(gè)新的實(shí)例,而不是在 AppModule 中提供的單例。

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

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

相關(guān)文章

  • AngularJS日期格式化常見操作實(shí)例分析

    AngularJS日期格式化常見操作實(shí)例分析

    這篇文章主要介紹了AngularJS日期格式化常見操作,結(jié)合實(shí)例形式分析了AngularJS日期格式化常用參數(shù)功能、設(shè)置與使用技巧,需要的朋友可以參考下
    2018-05-05
  • Angularjs實(shí)現(xiàn)上傳圖片預(yù)覽功能

    Angularjs實(shí)現(xiàn)上傳圖片預(yù)覽功能

    本文通過實(shí)例代碼給大家介紹了Angularjs實(shí)現(xiàn)上傳圖片預(yù)覽功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-09-09
  • 詳解基于Angular4+ server render(服務(wù)端渲染)開發(fā)教程

    詳解基于Angular4+ server render(服務(wù)端渲染)開發(fā)教程

    本篇文章主要介紹了詳解基于Angular4+ server render(服務(wù)端渲染)開發(fā)教程 ,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-08-08
  • 解決angular2 獲取到的數(shù)據(jù)無法實(shí)時(shí)更新的問題

    解決angular2 獲取到的數(shù)據(jù)無法實(shí)時(shí)更新的問題

    今天小編就為大家分享一篇解決angular2 獲取到的數(shù)據(jù)無法實(shí)時(shí)更新的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Angularjs中UI Router全攻略

    Angularjs中UI Router全攻略

    這篇文章主要介紹了Angularjs中UI Router全攻略,涉及到angularjs ui router的基本用法,需要的朋友參考下吧
    2016-01-01
  • 整理AngularJS中的一些常用指令

    整理AngularJS中的一些常用指令

    這篇文章主要介紹了整理AngularJS中的一些常用指令,包括ng-app、ng-init、ng-model和ng-repeat這四個(gè)指令的講解,需要的朋友可以參考下
    2015-06-06
  • 解決AngualrJS頁面刷新導(dǎo)致異常顯示問題

    解決AngualrJS頁面刷新導(dǎo)致異常顯示問題

    本篇文章主要介紹了解決AngualrJS頁面刷新導(dǎo)致異常顯示問題的方法。具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-04-04
  • AngularJS實(shí)現(xiàn)頁面定時(shí)刷新

    AngularJS實(shí)現(xiàn)頁面定時(shí)刷新

    本篇文章主要介紹了AngularJS實(shí)現(xiàn)頁面定時(shí)刷新,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • 在 Angular 中使用懶加載路由的方法

    在 Angular 中使用懶加載路由的方法

    延遲加載是一種限制加載用戶當(dāng)前需要的模塊的方法,這可以提高應(yīng)用程序的性能并減小初始捆綁包大小,在本文中,您學(xué)習(xí)了如何在 Angular 應(yīng)用程序中使用惰性加載路由,本文分步驟講解的非常詳細(xì),感興趣的朋友一起看看吧
    2024-02-02
  • Angular Cookie 讀寫操作代碼

    Angular Cookie 讀寫操作代碼

    這篇文章主要介紹了Angular Cookie 讀寫操作代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,感興趣的朋友跟隨小編一起看看吧
    2022-01-01

最新評(píng)論