redi

starsdownloadslicense

redi (发音为 'ready')是 TypeScript 的依赖注入库,另外提供了一组 React 绑定。借助依赖注入模式,写出更少耦合、更易调整、更易维护的代码。

💡

不了解依赖注入,或者没想好要不要使用依赖注入?请请阅读我们的博客以了解依赖注入想要解决的问题以及其优点。

概览

import { Inject } from '@wendellhu/redi'
 
class AuthService {
    public getCurrentUserInfo(): UserInfo {
        // your implementation here...
    }
}
 
class FileListService {
   constructor(@Inject(AuthService) private readonly authService: AuthService) {}
 
    public getUserFiles(): Promise<Files> {
       const currentUser = this.authService.getCurrentUserInfo()
        // ...
    }
}
 
const injector = new Injector([[AuthService], [FileListService]])
injector.get(AuthService)

立即开始 | Demo TodoMVC (opens in a new tab) | Demo 仓库 (opens in a new tab) | 脚手架 (opens in a new tab)

功能

  • 非侵入,redi 并不强制你在整个项目使用依赖注入模式,你可以在任何想要的地方应用
  • 支持多种类型的依赖项,包括:类、JavaScript 原始类型值和对象、工厂函数、异步依赖项
  • 支持可选、多值依赖注入
  • 支持层次化依赖注入,支持对依赖查找过程进行控制
  • 支持惰性实例化