2017-01-13 5 views
2

Довольно простой вопрос о ES6 импорта. Почему мы должны экспортировать модули, а затем импортировать их в другой JS-файл? Какая польза от этого? Каковы другие способы (даже если это грубо) выполнить это без экспорта и импорта? другими словами, если бы я работал над ES5, как мне это сделать, чтобы экспортировать и импортировать?ES6 импорт заявления выгод

Спасибо!

ответ

3

Почему мы должны экспортировать модули, а затем импортировать их в другой JS-файл? Какая польза от этого?

Вся суть модулей заключается в том, чтобы обеспечить удобный и чистый и простой способ для разработчиков организовать их код в многоразовые или совместно используемые модули. Таким образом, смысл использования модулей заключается в разработке вашего кода модульными способами.

Модули могут:

  1. быть распределены между проектами легко.
  2. Будьте проверены самостоятельно.
  3. Имейте собственное пространство имен и область видимости и могут иметь частные переменные.
  4. Обеспечьте четкий и чисто определенный интерфейс для тела кода.
  5. Может быть связан с механизмом загрузки кода для загрузки фрагментов кода.

Хотя все это можно было бы сделать без определенной языком структуры, тогда было бы много разных способов, которыми люди могут это сделать, и гораздо меньше людей структурируют свой код для этих преимуществ.

Эти преимущества могут быть очень четко видны для разработки node.js с помощью тысяч модулей, доступных через NPM. Без стандартного модульного дизайна, к которому все присоединяются, просто нелегко делиться множеством кусков кода, которые все делают разные вещи. Система модулей ES6 является попыткой стандартизации этого механизма.

Если бы я работал на ES5, как бы мне это сделать, чтобы экспортировать и импортировать?

Вам нужно будет либо найти систему сторонних модулей, чтобы принять ее (было много за несколько дней до ES6, таких как AMD или CommonJS), либо создать свой собственный или обойтись и, возможно, отказаться от некоторых из выше преимуществ. Модульная система node.js - одна из таких систем, разработанная вне стандарта языка Javascript. Поскольку он встроен в node.js и был основным механизмом, с помощью которого проект node.js загружал несколько исходных файлов, он стал стандартом де-факто для разработки node.js.

Или вы можете использовать транспилеры, такие как Babel, которые позволят вам писать код в ES6, и они переведут его на ES5-совместимый код для вас. Вы добавляете шаг «build» к вашему коду, который подходит для процесса сборки, например, для компиляции другого языка (за исключением того, что вы выполняете трансляцию, а не для компиляции), и вы получаете преимущества написания и отладки в ES6, но ваш код поддерживает совместимость с механизмами времени выполнения ES5 (например, старыми браузерами), с некоторыми ограничениями.

Вот полезная статья о Why Modules для получения дополнительной информации по теме?

Смежные вопросы