Мне было интересно, как лучше всего импортировать функцию/класс модуля в другой модуль, который сам модуль должен вызывать/инициализировать свою собственную функцию/класс перед импортом в другой модуль? Я не знаю, смогу ли я задать свой вопрос достаточно ясно! Итак, давайте поместим это в пример.
Это мой модуль:
// 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
, все работает нормально, когда модуль был импортирован куда-то еще... Пока все хорошо! Но я ищу лучшую практику, если она есть!
Итак, вот мои вопросы относительно таких случаев:
- Можно ли импортировать модуль, в котором нет ничего для экспорта?
- Должны ли мы установить класс как
export default
, хотя мы делаем еще некоторые работы вне класса в модуле (задание инициализации, которое происходит после определения класса)? - Или, может быть, хорошо выполнить задание инициализации в другой функции, а затем экспортировать и класс, и функцию, а затем вызвать функцию для выполнения задания инициализации в импортированном модуле?
Большое спасибо всем! Я очень ценю любую помощь по этому поводу :)