В чем разница между "импортировать" и "требовать" в JavaScript?
Когда я хочу использовать пакеты в JavaScript import
против require
? Они одинаковы или имеют разные варианты использования?
2 ответа
Вы можете иметь динамическую загрузку там, где имя загруженного модуля не является предопределенным / статическим, или если вы условно загружаете модуль, только если он "действительно требуется" (в зависимости от определенного потока кода). Загрузка синхронная. Это означает, что если у вас есть несколько требований, они загружаются и обрабатываются по одному. ES6 Импорт:
Вы можете использовать именованный импорт, чтобы выборочно загрузить только те части, которые вам нужны. Это может сохранить память. Импорт может быть асинхронным (и в текущем ES6 Module Loader это действительно так) и может работать немного лучше. Кроме того, система модулей Require не основана на стандартах. Маловероятно, что это станет стандартом сейчас, когда существуют модули ES6. В будущем будет встроена поддержка модулей ES6 в различных реализациях, что будет выгодно с точки зрения производительности.
Требовать: синхронно
Вы можете иметь динамическую загрузку там, где имя загруженного модуля не является предопределенным / статическим, или если вы условно загружаете модуль, только если он "действительно требуется" (в зависимости от определенного потока кода). Загрузка синхронная. Это означает, что если у вас есть несколько требований, они загружаются и обрабатываются по одному.
ES6 Импорт: может быть асинхронным
Вы можете использовать именованный импорт, чтобы выборочно загрузить только те части, которые вам нужны. Это может сохранить память. Импорт может быть асинхронным (и в текущем ES6 Module Loader это действительно так) и может работать немного лучше. Кроме того, система модулей Require не основана на стандартах. Маловероятно, что это станет стандартом сейчас, когда существуют модули ES6. В будущем будет встроена поддержка модулей ES6 в различных реализациях, что будет выгодно с точки зрения производительности.