最近在用bpmn-js
来进行flowable
流程图的开发工作,不可避免地希望对其运行机制做一个大致的了解,在使用bpmn-js
的过程中,bpmn-js
基于diagram-js
实现的插件式开发方式引起了我的兴趣。于是通过查阅源码希望对齐进一步了解发现:diagram-js
是基于一个叫didi
的实现的依赖注入功能并贯穿全局,深度使用。接下来我们一起来了解下didi
是如何实现依赖注入的。每一个贡献都值得尊敬,顺手给didi
开源库一个Star
。
如何使用?
首先通过didi
在github
上的文档介绍来了解下如何去使用didi
来实现依赖注入。我这里基于文档做了一些结构上的调整,介绍如何创建一个didi
的注入组件。依赖注入无非就三个过程:模块实现、模块声明、模块注入,由于didi组件有其特殊格式要求,我们倒着来介绍。
1、模块注入
didi
提供一个Injector
对象来对所有注入对象进行初始化:
import { Injector } from 'didi';
cons