РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗tlVtImDy 39 of 72 menu
◀ ▶

Динамический импорт в Vite

Динамический импорт подгружает модуль по запросу и в сборке выходит отдельным куском.

На странице сначала будет короткая подпись, а полный текст появится после нажатия кнопки. Файл с текстом положим отдельно, чтобы главный модуль не тянул его сразу:

export const text = 'hello';

В разметке оставим кнопку и место для текста:

<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <title>hello</title> </head> <body> <button type="button" id="load">Загрузить</button> <p id="out">wait</p> <script type="module" src="/src/main.js"></script> </body> </html>

Обработчик щелчка вызовет import() с путём к файлу и подставит результат в абзац:

const button = document.querySelector('#load'); const out = document.querySelector('#out'); button.addEventListener('click', async () => { const { text } = await import('./extra/hello.js'); out.textContent = text; });

На сервере разработки файл hello.js появится во вкладке сети только после щелчка. После сборки проекта в папке dist/assets лежит отдельный файл для этого модуля, а главный скрипт загружает его по мере необходимости.

Создайте src/lazy/ready.js со строкой ready и выведите её на странице только после нажатия своей кнопки через динамический импорт.

После сборки найдите в dist/assets отдельный файл, который относится к src/lazy/ready.js, а не к главному модулю.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить