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

Введение в картинки в Nuxt

В основном учебнике вы уже выводили файлы через тег img: обложку из public по пути со слэша и снимок из assets через импорт в script setup. Браузер в обоих случаях запрашивает тот файл, который лежит на диске или попал в сборку: если исходник тяжёлый, пользователь скачивает его целиком, даже когда на экране картинка показывается в небольшом блоке.

На мобильном интернете и на страницах с десятками превью это заметно по времени загрузки и трафику. Отдельно можно править файлы в графическом редакторе, но тогда для каждого размера нужна своя копия, а вёрстка при смене макета снова расходится с реальными пикселями на экране.

Высший учебник подключает модуль @nuxt/image. Он встраивается в Nuxt как официальное расширение и даёт компонент для шаблона, который ведёт себя как привычный тег изображения, но просит сервис модуля отдать версию файла ближе к запрошенной ширине и высоте. Локальные файлы из public и удалённые адреса обрабатываются по одной схеме: в разметке указываем источник и параметры, а тяжёлую работу по изменению размера берёт на себя модуль.

Раздел опирается на JavaScript и структуру Nuxt 4: страницы в app/pages, корень приложения app/app.vue, настройки в nuxt.config.ts. Примеры можно повторить в проекте my-app после npm create nuxt@latest. Мы не возвращаемся к импорту из assets и не дублируем уроки про обычный img: здесь один согласованный способ работы с изображениями через модуль. Отдельный компонент для тега picture в этой теме не разбираем.

Каждый следующий шаг опирается на установку модуля, но урок можно читать с готовым конфигом и повторять только разметку на своей странице. Задача раздела - научиться подключать @nuxt/image, выводить локальные и внешние файлы, задавать размер и подбирать вариант под ширину viewport, чтобы браузер не тянул лишние мегабайты без необходимости.

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