博客 / 詳情

返回

在nodejs環境使用依賴注入

前言

  • 一直以來static-injector都遵循修舊如舊原則,把 Angular 的依賴注入完整的提取出來
  • 但是這樣的話在其他平台上必須使用transformer來進行一個靜態轉換,一個是影響速度,還有一個就是加大了配置難度
  • 因為 Angular 的依賴注入增加了inject可以在構造時讀取依賴項,所以基本上不影響功能.如果想使用providedIn可以改為類中加入靜態屬性static injectOptions={providedIn:'xxx'}
  • 修改後的static-injector支持在任何node/瀏覽器上,不使用任何依賴,直接引入即可使用

簡介

  • Angular 依賴注入的獨立版本
  • 使用方法與 Angular 的依賴注入完全一致
  • 不需要任何轉換器,引入即可使用
  • 0依賴
  • 移除裝飾器

    @Injectable()=>static injectOptions={}
    @Inject() xx=>xx=inject()
    @Optional()等=>xx=inject(token,{optional:true})
  • JS/TS支持

    來源

  • Angular 17.3.6

使用方法

  • Injector.create創建第一級依賴注入器
import { Injector, inject } from 'static-injector';

class Main {
  child = inject(Child);
}
class Child {
  output() {
    return 'hello world';
  }
}
let injector = Injector.create({ providers: [Main, Child] });
const instance = injector.get(Main);
console.log(instance.child.output());

實例

  • https://github.com/wszgrcy/static-injector/tree/main/test/import
user avatar kasong 頭像 ziyeliufeng 頭像 esunr 頭像 _raymond 頭像 susouth 頭像 gaoming13 頭像 niumingxin 頭像 mrqueue 頭像 nihaojob 頭像 codeoop 頭像 icezero 頭像 wupengyu_55d86cdb45293 頭像
23 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.