前言
- 一直以来
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());
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。