TGViewer
Frontender Libs - обзор библиотек JS / CSS Frontender Libs - обзор библиотек JS / CSS @swebdev · 7.45K subscribers
Post #4019 882
Адаптивный интерфейс

Хук useMediaQuery отслеживает media-запросы для адаптации интерфейса. Для корректной работы в SSR, где объект window недоступен и нельзя определить размер экрана, хук принимает начальное значение (defaultValue). Оно используется при рендеринге на сервере, а после гидратации на клиенте состояние обновляется до реального.

import { useState, useEffect } from 'react';

function useMediaQuery(query: string, defaultValue = false) {
const [matches, setMatches] = useState(defaultValue);

useEffect(() => {
const mediaQueryList = window.matchMedia(query);

const listener = (event: MediaQueryListEvent) => setMatches(event.matches);

// Устанавливаем начальное значение после монтирования
setMatches(mediaQueryList.matches);

mediaQueryList.addEventListener('change', listener);
return () => mediaQueryList.removeEventListener('change', listener);
}, [query]);

return matches;
}


👉 @sWebDev
  • 👍 3
More from @swebdev
  1. Sep 26, 2026🤖 AI для фронтенд-разработчика: собираем инструменты на Podlodka Frontend Crew AI-инструм…
  2. Mar 23, 2026👉 @sWebDev | #книги
  3. Mar 23, 2026JavaScript для профессиональных веб-разработчиков Автор доступно объясняет сложные концепц…
  4. Jan 27, 2026Tabulator Библиотека, которая превращает HTML-таблицы или данные из JavaScript в интеракти…
  5. Jan 9, 2026Post #4134
  6. Jan 9, 2026Отложенный вызов Вопрос: Что произойдёт, если передать null в качестве задержки в useTimeo…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →