useDevicePixelRatio ​
Reactively track window.devicePixelRatio
NOTE: there is no event listener for
window.devicePixelRatio
change. So this function usesTesting media queries programmatically (window.matchMedia)
applying the same mechanism as described in this example.
Demo ​
Device Pixel Ratio:
pixelRatio: 1Zoom in and out (or move the window to a screen with a different scaling factor) to see the value changes
Usage ​
js
import { useDevicePixelRatio } from '@vueuse/core'
export default {
setup() {
const { pixelRatio } = useDevicePixelRatio()
return { pixelRatio }
},
}
Component Usage ​
This function also provides a renderless component version via the
@vueuse/components
package. Learn more about the usage.
vue
<template>
<UseDevicePixelRatio v-slot="{ pixelRatio }">
Pixel Ratio: {{ pixelRatio }}
</UseDevicePixelRatio>
</template>
Type Declarations ​
typescript
/**
* Reactively track `window.devicePixelRatio`.
*
* @see https://vueuse.org/useDevicePixelRatio
*/
export declare function useDevicePixelRatio(options?: ConfigurableWindow): {
pixelRatio: Readonly<Ref<number, number>>
stop: () => void
}
export type UseDevicePixelRatioReturn = ReturnType<typeof useDevicePixelRatio>
Source ​
Contributors ​
Anthony Fu
Antério Vieira
Anthony Fu
Waleed Khaled
wheat
Fernando Fernández
David Hewson
vaakian X
Shinigami
Alex Kozack
Konstantin Barabanov
Changelog ​
v12.3.0
on 1/2/202559f75
- feat(toValue): deprecate toValue
from @vueuse/shared
in favor of Vue's nativev12.0.0-beta.1
on 11/21/2024v9.13.0
on 2/18/2023v9.11.0
on 1/17/2023