Как работает динамический import?

102
21 января 2021, 12:20

Со статическими импортами все более-менее понятно

import A from "a.js";

Сборщик натыкается на эту строку, зависимость резолвится и в конечном итоге попадает в готовый бандл.

С динамическими импортами уже возникают вопросы. Если значение подгружаемого модуля динамическое (что, насколько я знаю, невозможно со статическими импортами), например

import(`/assets/${ asset }`);

то имя подгружаемого модуля может стать известно только в рантайме.

Логично, что в этом случае файл не отправляется клиенту сразу при загрузке основного скрипта, а должен быть затребован только спустя какое-то время.

Вот, собственно, и интересует, как. Там внутри что-то типа fetch?

И еще, это получается, все файлы, которые динамически импортируются, должны быть доступны извне? То есть если у меня, например, сервер настроен с фоллбэком на index для любого пути (clint-side routing то бишь), то нужно отдельно каждый файл, который может быть динамически подгружен, "открывать" для доступа по ссылке (чтобы скрипт его банально мог скачать)?

Или же каким-то образом все динамические импорты подпадают в бандл заранее и сразу отправляются клиенту? Но если так, то какой в этом смысл, если это не приводит к сокращению размера посылки (а это именно то, для чего динамические импорты создавались в первую очередь, насколько я понимаю)?

READ ALSO
Как передать action в компонент Redux ReactJS

Как передать action в компонент Redux ReactJS

Пробую передать action addProduct в компонент но при клике пишет ошибку, помогите справиться, зарание спасибо!

111
navbar bootstrap не корректно работает на компьютере

navbar bootstrap не корректно работает на компьютере

Выгрузил проект на хостинг, заметил одну проблемуНавигационная панель не корректно работает, вот 2 ситуации:

94
Вывод определенных объектов из массива

Вывод определенных объектов из массива

Всем приветУ меня есть функция при нажатие на которую я хочу получать объекты из массива только первой категории

93
Flex: 3 элемента 1 по центру остальные по краям

Flex: 3 элемента 1 по центру остальные по краям

Пытаюсь сделать верстку на флексах, есть три контейнера разной шириныДва должны быть по краям и один по центру

146