Выбор ответа Junior Модули спрашивают часто обновлено

Зачем нужен динамический import()

Вопрос

Что делает import('./editor.js') и зачем он нужен?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Грузит модуль по требованию и отдаёт промис; сборщик выносит его в отдельный чанк. Динамический import() это выражение, которое можно вызвать где угодно, в том числе по клику или по маршруту, и он возвращает промис.

Варианты ответа

  1. Синхронно подключает модуль, как require, и сразу возвращает его экспорты
  2. Грузит модуль по требованию и отдаёт промис; сборщик выносит его в отдельный чанкправильный ответ
  3. Импортирует модуль заново при каждом вызове, без кеша, чтобы получить свежий код
  4. Работает только внутри CommonJS-файлов, а в ESM для этого есть import ... from

Разбор

Динамический import() это выражение, которое можно вызвать где угодно, в том числе по клику или по маршруту, и он возвращает промис. Сборщики выделяют такой модуль в отдельный файл, который скачивается только при вызове: так делают code splitting и React.lazy. Модуль кешируется, повторный вызов вернёт тот же экземпляр. Синхронным он не бывает, и работает он и в ESM, и в CommonJS.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.