为什么不应该将Ionic提供程序设置为全局变量?

时间:2019-01-13 03:20:05

标签: typescript ionic-framework ionic3

在我的Ionic项目中,我在许多自定义类中使用device.ts提供程序。问题是,每次使用自定义类时,都必须将设备提供程序传递给它,因为没有其他方法可以访问它。

因此,每次我的代码如下:

let user = User(device);
let cart = Cart(device);
let page = Page(device);

要解决此问题,我可以在提供程序的构造函数中进行设置

window.device = this;

现在,我不需要将设备传递给每个对象,因为我可以将其作为window.device在那里获取。这有什么害处? Ionic的文档中没有类似的东西,我不确定为什么,或者我在做什么不是一个好主意。

1 个答案:

答案 0 :(得分:1)

这个想法是,您的自定义类可以在项目外生存。您的User()应该可以在提供设备的任何地方使用(听起来就像您编写设备一样)。至少那是我的拙见。如果您的自定义类依赖于项目中的某些变量,那么它们将无法独立存在并且不可重用。

如果您从不打算重复使用代码,那就去做吧。我总是追求最佳实践,但有时却浪费时间。做最适合自己情况的事情。

我一直认为模块化使我的代码更容易理解和修复。如果一段代码是自包含的,并且不依赖于另一段代码或全局变量,并且可以在不了解整个项目的情况下自己理解,那么它对我来说总是更可维护的。