useMediaQuery
響應式 媒體查詢。一旦您建立了一個 MediaQueryList 物件,您可以檢查查詢結果或在結果變更時接收通知。
範例
isLargeScreen: false
prefersDark: false
用法
js
import { useMediaQuery } from '@vueuse/core'
const isLargeScreen = useMediaQuery('(min-width: 1024px)')
const isPreferredDark = useMediaQuery('(prefers-color-scheme: dark)')
伺服器端渲染與 Nuxt
如果您正在使用啟用 SSR 的 useMediaQuery
,那麼您需要指定您想要在伺服器上渲染的螢幕尺寸,以及在 hydration 之前,以避免 hydration 不匹配
js
import { breakpointsTailwind, useMediaQuery } from '@vueuse/core'
const isLarge = useMediaQuery(
'(min-width: 1024px)',
{ ssrWidth: 768 } // Will enable SSR mode and render like if the screen was 768px wide
)
console.log(isLarge.value) // always false because ssrWidth of 768px is smaller than 1024px
onMounted(() => {
console.log(isLarge.value) // false if screen is smaller than 1024px, true if larger than 1024px
})
或者,您可以使用 provideSSRWidth
為您的應用程式全域設定此項
類型宣告
typescript
/**
* Reactive Media Query.
*
* @see https://vueuse.dev.org.tw/useMediaQuery
* @param query
* @param options
*/
export declare function useMediaQuery(
query: MaybeRefOrGetter<string>,
options?: ConfigurableWindow & {
ssrWidth?: number
},
): ComputedRef<boolean>
原始碼
貢獻者
變更日誌
v12.8.0
於 2025/3/5v12.5.0
於 2025/1/22v12.3.0
於 2025/1/259f75
- feat(toValue): 棄用 @vueuse/shared 中的 toValue,改用 Vue 原生v12.1.0
於 2024/12/22v12.0.0-beta.1
於 2024/11/21v10.3.0
於 2023/7/30v10.0.0-beta.4
於 2023/4/134d757
- feat(types)!: 將 MaybeComputedRef 重新命名為 MaybeRefOrGetter10e98
- feat(toRef)!: 將 resolveRef 重新命名為 toRefv10.0.0-beta.3
於 2023/4/12