Skip to content

Latest commit

 

History

History
58 lines (44 loc) · 1.66 KB

readme.zh-Hans.md

File metadata and controls

58 lines (44 loc) · 1.66 KB
中文 English

简介

  • Angular 依赖注入的独立版本
  • 使用方法与 Angular 的依赖注入完全一致
  • 不需要任何转换器,引入即可使用
  • 0依赖
  • 移除装饰器

@Injectable()=>static injectOptions={} @Inject() xx=>xx=inject() @Optional()=>xx=inject(token,{optional:true})

  • JS/TS支持

来源

  • Angular 18.0.0

使用方法

  • 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());

injection-js的不同

  • injection-js属于动态依赖注入,是 Angular5 之前使用的版本,目前已经不再更新

  • 两者基本上可以互换(细节部分需要调整)

  • 支持构造时期使用inject

无装饰器

  • 原来使用@Injectable()传参改为static injectOptions={}.如果没有参数即不需要设置
  • 原来@Optional,@SkipSelf,@Self,请使用inject的第二个传参代替

测试

  • 做了一部分的单元测试.保证大部分功能正常使用
  • 因为大部分代码本身就是从 Angular 中提取的,所以稳定性肯定也是有保证

同步

  • 目前重构了同步逻辑,使用@code-recycle/cli进行修改,保证与angular官方版本一致

实例