Веб-приложения превратились из статичных, и по мере того, как эти приложения становятся более функциональными и сложными, организация кода становится первостепенной задачей. В приложение добавляется больше кодов, и управление им может стать кошмаром. Так что же такое модуль?
Модуль — это просто файл, который содержит другие файлы с помощью специальных директив, таких как импорт и экспорт. В чем суть этих директив? Что ж, они гарантируют, что файлы доступны за пределами папки (текущего модуля), которая должна быть создана в приложении, что позволяет использовать блок кода за пределами его собственного файла.
Важные примечания о модулях
- Модули работают только через HTTP(s), а не локально: если вы попытаетесь открыть веб-страницу локально по протоколу
file://
, вы обнаружите, что директивыimport/export
не работают. Быстрое решение этой проблемы — использовать расширение живого сервера в вашей локальной среде IDE. - Модули всегда работают в строгом режиме. Например. присваивание необъявленной переменной приведет к ошибке.
- Каждый модуль имеет свою область верхнего уровня. Другими словами, переменные верхнего уровня и функции из модуля не отображаются в других сценариях, если не вызываются переменные, используемые при их объявлении.
- Старые браузеры не понимают
type="module"
. Скрипты неизвестного типа просто игнорируются. Для них можно предоставить запасной вариант с помощью атрибутаnomodule
. - Код модуля выполняется только один раз. Экспорты создаются один раз и распределяются между импортерами.
По большей части важно понимать концепцию модулей, поскольку она видна во всех фреймворках JavaScript. Примеры этих популярных фреймворков включают Angular, React, Vue и т. д. Но в основном проверяйте, как модули можно использовать исключительно в javascript. здесь
О чем это?
30daysofjavascript — это серия статей о том, как я научился программировать на JavaScript. Эти эпизоды максимально упрощены, и я надеюсь, что для таких новичков, как я, JavaScript станет менее запутанным в этом эпизоде. Как всегда спасибо и увидимся в следующем выпуске. Посмотрите каждую серию, которую я написал здесь.