如何在es6中导入本身需要在导入之前调用/初始化其功能/类的模块

我想知道在另一个模块中导入模块的功能/类的最佳实践是什么,该模块本身在导入另一个模块之前需要调用/初始化其自身的功能/类?我不知道我能否清楚地问我的问题!因此,让我们举一个例子。

这是我的模块:

// myModule.js
class MyModule {
  constructor() {
    // do sth
  }
}

let myModule = new MyModule();

这就是我想将其导入另一个模块的方式:

import MyModule from './myModule';

这实际上很好!但是正如您所看到的,在myModule.js文件中我不是export default我的MyModule班,因为这不是文件中唯一发生的事情myModule.js我也在定义它之后初始化该类...(我知道,即使我将类设置为export default初始化,当将模块导入其他地方时,初始化仍然可以正常工作...)

因此,无需将任何内容设置为在模块内部导出,或将类设置为export default,将模块导入其他地方后,一切都可以正常工作……到目前为止,一切都很好!但是,我正在寻找一种最佳实践!

因此,这是我对此类情况的疑问:

  1. 可以导入没有任何内容可以导出的模块吗?
  2. 我们是否应该将类设置为export default,尽管我们在模块的类之外进行了更多工作(定义类后正在执行的初始化工作)?
  3. 还是在另一个函数中进行初始化工作然后导出类和函数,然后调用该函数在导入的模块中进行初始化工作,这是好事吗?

非常感谢大家!我真的很感谢对此的任何帮助:)

非常感谢你们的回答。我非常感谢。实际上,我对正在从事的项目感到非常困惑,所以也许我无法表达自己的意图。

但是无论如何,我会针对自己的问题写自己的答案,也许其他人会发现它们很有用:

  1. 拥有一个export defaultexport一个我们将要编写的模块总是一个好习惯因为每段代码都倾向于产生一些结果,对吗?因此,在一个模块中,我们应该考虑最终要实现的目标,然后将其导出。导出您的输出,即您希望模块在将其导入其他地方时将提供的东西。

  2. 如果您的模块是单个类,那么对它很好export default否则,就像我在第一个答案中所说的那样,这完全取决于您将在模块中实现的目标以及结果是什么。导出所有结果,实用程序功能等。

  3. 您可能也喜欢这样做!但是首先考虑您的用例。一旦将模块导入其他地方,模块中的所有代码将被执行。因此,您可以做任何想做的事情,然后导出最终结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章