跳到内容

useMediaQuery

类别
导出大小
455 B
最近更改
5 天前

响应式 Media Query。 一旦你创建了一个 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,那么你需要指定你想要在服务端渲染和在水合之前渲染的屏幕尺寸,以避免水合不匹配

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.org.cn/useMediaQuery
 * @param query
 * @param options
 */
export declare function useMediaQuery(
  query: MaybeRefOrGetter<string>,
  options?: ConfigurableWindow & {
    ssrWidth?: number
  },
): ComputedRef<boolean>

源码演示文档

贡献者

Anthony Fu
Antério Vieira
Anthony Fu
IlyaL
Fernando Fernández
Adrien Foulon
Alex
Indrek Ardel
Zhousg
Young
Jelf
Dominik Freier
webfansplz
Eureka
karma
Alex Kozack
Jacob Clevenger

更新日志

v12.8.0 on 3/5/2025
7432f - feat(types): 弃用 MaybeRef 和 MaybeRefOrGetter,转而使用 Vue 原生 (#4636)
v12.5.0 on 1/22/2025
c6c6e - feat: 在未使用 useEventListener 的地方使用它 (#4479)
v12.3.0 on 1/2/2025
59f75 - feat(toValue): 弃用 @vueuse/shared 中的 toValue,转而使用 Vue 原生
v12.1.0 on 12/22/2024
55965 - feat(useSSRWidth): 在 useMediaQuery 和 useBreakpoints 中添加对 SSR 的可选支持 (#4317)
3af75 - fix: 返回值应该被计算 (#4403)
v12.0.0-beta.1 on 11/21/2024
0a9ed - feat!: 移除 Vue 2 支持,优化打包并清理代码 (#4349)
v10.3.0 on 7/30/2023
f3969 - fix: 仅在查询更改时添加/移除事件监听器 (#3236)
v10.0.0-beta.4 on 4/13/2023
4d757 - feat(types)!: 将 MaybeComputedRef 重命名为 MaybeRefOrGetter
10e98 - feat(toRef)!: 将 resolveRef 重命名为 toRef
v10.0.0-beta.3 on 4/12/2023
4e7b0 - fix(useWindowSize)!: 使用 media query 代替 orientationchange 监听器 (#2919)

在 MIT 许可证下发布。