Skip to content

useMediaQuery

类别
导出体积
1.17 kB
上次更改
1 hour ago

响应式的媒体查询。一旦你创建了一个 MediaQueryList 对象,你可以检查查询结果或在结果变化时接收通知。

示例

isLargeScreen: false
prefersDark: false

使用方法

ts
import { 
useMediaQuery
} from '@vueuse/core'
const
isLargeScreen
=
useMediaQuery
('(min-width: 1024px)')
const
isPreferredDark
=
useMediaQuery
('(prefers-color-scheme: dark)')

Server Side Rendering and Nuxt

If you are using useMediaQuery with SSR enabled, then you need to specify which screen size you would like to render on the server and before hydration to avoid an hydration mismatch

ts
import { 
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
})

Alternatively you can set this up globally for your app using provideSSRWidth

类型声明

ts
/**
 * 响应式媒体查询。
 *
 * @see https://vueuse.org/useMediaQuery
 * @param query
 * @param options
 */
export declare function 
useMediaQuery
(
query
:
MaybeRefOrGetter
<string>,
options
?:
ConfigurableWindow
& {
ssrWidth
?: number
}, ):
ComputedRef
<boolean>

源码

源码演示文档

贡献者

一纸忘忧

更新日志

没有最近的更新日志