MDX позволяет вставлять изображения как обычные Markdown-элементы,
так и использовать их как React-компоненты. Это дает гибкость в
управлении атрибутами alt, title и
src, а также позволяет применять динамическую обработку
через JavaScript.

или с использованием компонента:
import Image from './components/Image';
Использование компонентов важно для дальнейшей оптимизации, так как позволяет подключать библиотеку для ленивой загрузки, автоматического изменения размеров и форматов изображений.
MDX совместим с React-компонентами, что позволяет реализовать ленивую
загрузку изображений через атрибут loading="lazy" или
специализированные компоненты:
Преимущества ленивой загрузки:
Для больших проектов можно использовать библиотеку
react-lazyload или next/image в случае
Next.js, что позволяет автоматически оптимизировать изображения под
экран пользователя.
Современные форматы, такие как WebP и AVIF, значительно уменьшают вес изображений без потери качества. В MDX это реализуется через динамическое подключение:
Особенности:
fallback гарантирует корректное
отображение в старых браузерах.MDX позволяет использовать srcSet и sizes
для адаптивного подгружаемого контента:

Преимущества:
В проектах на MDX, интегрированных с Webpack, Vite или Next.js, изображения можно обрабатывать на этапе сборки:
srcSet.Пример конфигурации для Webpack с
image-webpack-loader:
module.exports = {
module: {
rules: [
{
test: /\.(png|jpe?g|gif|webp)$/i,
use: [
{
loader: 'file-loader',
options: { name: '[name].[hash].[ext]' },
},
{
loader: 'image-webpack-loader',
options: { mozjpeg: { quality: 75 }, webp: { quality: 75 } },
},
],
},
],
},
};
Для крупных проектов важно использовать CDN для хранения изображений. В MDX это реализуется через:
Cache-Control для
долговременного кэширования.Пример использования CDN:
Эффект:
Для автоматизации оптимизации изображений в MDX можно использовать библиотеки:
next/image (Next.js) — автоматическая оптимизация,
ленивый рендеринг, адаптивные изображения.gatsby-plugin-image (Gatsby) — генерация
srcSet, ленивое отображение, WebP/AVIF.react-image — управление состояниями загрузки и
отображением placeholder.Эти подходы позволяют полностью отказаться от ручного контроля оптимизации и сосредоточиться на контенте.