在Aurelia.js中,我看到人们如何注入依赖关系的不同例子,但是没有找到关于何时明确包含注入注释或按原样使用它的明确答案。
例如:
import {inject} from 'aurelia-framework';
import {X} from 'X';
@inject(X)
export class Y {
constructor(X) {
this.x = X;
}
}
或
import {X} from 'X';
export class Y {
constructor() {
this.ABC = someMethod(X); // using X without inject
}
}
为什么有人会选择一个而不是另一个?
答案 0 :(得分:4)
依赖注入实际上是Aurelia完全接受的design pattern。虽然您不会被迫采用这种模式,但这是最佳实践,因为您遇到的大多数Aurelia源代码都将遵循此模式。核心团队成员Jeremy Danyow分两部分写了一篇关于这个主题的精彩文章,我将在下面链接。
答案 1 :(得分:2)
如果import X from 'X';
X
是一个类,而不是类的实例,则应使用依赖注入来允许Aurelia为您提供该类的实例。
有时,模块导出函数导出对象实例。在这些情况下,您不应使用DI。