↼ All Hooks

useMediaQuery

useMediaQuery - bu @udemere/usehooks kutubxonasida joylashgan maxsus hook bo'lib, u React ilovalarida media so'rovlari o'zgarishlarini qulay tarzda tinglash imkonini beradi va useSyncExternalStore dan foydalanadi.


useMediaQuery Hook

useMediaQuery - bu @udemere/usehooks kutubxonasida joylashgan maxsus hook bo'lib, u React ilovalarida media so'rovlari o'zgarishlarini qulay tarzda tinglash imkonini beradi va useSyncExternalStore dan foydalanadi. Ushbu hook ekran o'lchami yoki boshqa media xususiyatlaridagi o'zgarishlarga dinamik tarzda javob berishga imkon beradi, bu esa foydalanuvchi interfeysini har doim brauzerning ko'rinishiga mos kelishini ta'minlaydi.

Foydalanish

import { useMediaQuery } from "@udemere/usehooks";
 
const isMobile = useMediaQuery("(max-width: 768px)");

Parametrlar

Qaytadi

Qanday ishlaydi

  1. Media So'rovlari O'zgarishlarini Kuzatish: Hook window.matchMedia(query) ga obuna bo'lib, o'zgarishlar uchun addEventListener metodidan foydalanadi.

  2. Snapshot Funktsiyalari:

    • getSnapshot: Klientda media so'rovi hozirda mos kelayotganini qaytarish uchun chaqiriladi.
    • getServerSnapshot: Server tomonida render qilish (SSR) paytida xato beradi, chunki media so'rovlari faqat brauzer muhitlarida qo'llab-quvvatlanadi.
  3. Media So'rovi Voqealarini Boshqarish: Media so'rovi sharti o'zgarganda (masalan, oynani o'lchamini o'zgartirish), hook qaytarilgan boolean qiymatini yangilash orqali javob beradi.

  4. Tozalash: O'chirilganda yoki so'rov o'zgarganda, voqea tinglovchisi olib tashlanadi, bu esa xotira oqimlarini oldini olish uchun amalga oshiriladi.

Misol

import React from 'react'
import { useMediaQuery } from '@udemere/usehooks'
 
const ResponsiveLayout: React.FC = () => {
	const isMobile = useMediaQuery('(max-width: 768px)')
 
	return (
		<div>
			{isMobile ? (
				<p>Mobil ekranda ko'rish</p>
			) : (
				<p>Katta ekranda ko'rish</p>
			)}
		</div>
	)
}
 
export default ResponsiveLayout

Ushbu misolda, useMediaQuery ko'rinish kengligi 768 pikseldan pastligini tekshiradi. Agar to'g'ri bo'lsa, komponent mobil qurilmalar uchun optimallashtirilgan kontentni ko'rsatadi; aks holda, katta ekranlar uchun kontentni ko'rsatadi.

Eslatmalar

Foydalar

O'rnatish

npm install @udemere/usehooks

Endi siz @udemere/usehooks kutubxonasidan useMediaQuery yordamida komponentlaringizda javob beruvchi xatti-harakatni osonlik bilan qo'shishingiz mumkin!