Skip to content

useDeviceOrientation

Category
Export Size
807 B
Last Changed
2 weeks ago

Reactive DeviceOrientationEvent. Provide web developers with information from the physical orientation of the device running the web page.

Demo

isSupported: true
isAbsolute: false
alpha: null
beta: null
gamma: null

Usage

ts
import { 
useDeviceOrientation
} from '@vueuse/core'
const {
isAbsolute
,
alpha
,
beta
,
gamma
,
} =
useDeviceOrientation
()
StateTypeDescription
isAbsolutebooleanA boolean that indicates whether or not the device is providing orientation data absolutely.
alphanumberA number representing the motion of the device around the z axis, express in degrees with values ranging from 0 to 360.
betanumberA number representing the motion of the device around the x axis, express in degrees with values ranging from -180 to 180.
gammanumberA number representing the motion of the device around the y axis, express in degrees with values ranging from -90 to 90.

You can find more information about the state on the MDN.

Component Usage

This function also provides a renderless component version via the @vueuse/components package. Learn more about the usage.

vue
<template>
  <UseDeviceOrientation v-slot="{ 
alpha
,
beta
,
gamma
}">
Alpha: {{
alpha
}}
Beta: {{
beta
}}
Gamma: {{
gamma
}}
</UseDeviceOrientation> </template>

Type Declarations

ts
/**
 * Reactive DeviceOrientationEvent.
 *
 * @see https://vueuse.org/useDeviceOrientation
 * @param options
 *
 * @__NO_SIDE_EFFECTS__
 */
export declare function 
useDeviceOrientation
(
options
?:
ConfigurableWindow
): {
isSupported
:
ComputedRef
<boolean>
isAbsolute
:
ShallowRef
<boolean, boolean>
alpha
:
Ref
<number | null, number | null>
beta
:
Ref
<number | null, number | null>
gamma
:
Ref
<number | null, number | null>
} export type
UseDeviceOrientationReturn
=
ReturnType
<typeof
useDeviceOrientation
>

Source

SourceDemoDocs

Contributors

Anthony Fu
Antério Vieira
SerKo
Anthony Fu
Robin
Guspan Tanadi
Fernando Fernández
vaakian X
Jelf
Shinigami
wheat
Alex Kozack

Changelog

v13.6.0 on
d32f8 - refactor: add @__NO_SIDE_EFFECTS__ annotations to all pure functions (#4907)
v12.4.0 on
dd316 - feat: use passive event handlers everywhere is possible (#4477)
v12.0.0-beta.1 on
0a9ed - feat!: drop Vue 2 support, optimize bundles and clean up (#4349)

Released under the MIT License.

Build faster with AI
New Masterclass to help you leverage AI in your Vue workflow
Get Early Access