Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Apply VueUse composables in Vue 3/Nuxt projects to replace custom implementations with battle-tested utilities.
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
references/useResizeObserver.md
1---2category: Elements3---45# useResizeObserver67Reports changes to the dimensions of an Element's content or the border-box89## Usage1011```vue12<script setup lang="ts">13import { useResizeObserver } from '@vueuse/core'14import { ref, useTemplateRef } from 'vue'1516const el = useTemplateRef('el')17const text = ref('')1819useResizeObserver(el, (entries) => {20const entry = entries[0]21const { width, height } = entry.contentRect22text.value = `width: ${width}, height: ${height}`23})24</script>2526<template>27<div ref="el">28{{ text }}29</div>30</template>31```3233## Directive Usage3435```vue36<script setup lang="ts">37import { vResizeObserver } from '@vueuse/components'3839const text = ref('')4041function onResizeObserver(entries) {42const [entry] = entries43const { width, height } = entry.contentRect44text.value = `width: ${width}, height: ${height}`45}46</script>4748<template>49<div v-resize-observer="onResizeObserver">50{{ text }}51</div>52</template>53```5455[ResizeObserver MDN](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver)5657## Type Declarations5859```ts60/**61* @deprecated This interface is now available in the DOM lib.62* Use the global {@link globalThis.ResizeObserverSize} instead.63*/64export interface ResizeObserverSize {65readonly inlineSize: number66readonly blockSize: number67}68/**69* @deprecated This interface is now available in the DOM lib.70* Use the global {@link globalThis.ResizeObserverEntry} instead.71*/72export interface ResizeObserverEntry {73readonly target: Element74readonly contentRect: DOMRectReadOnly75readonly borderBoxSize: ReadonlyArray<ResizeObserverSize>76readonly contentBoxSize: ReadonlyArray<ResizeObserverSize>77readonly devicePixelContentBoxSize: ReadonlyArray<ResizeObserverSize>78}79/**80* @deprecated This interface is now available in the DOM lib.81* Use the global {@link globalThis.ResizeObserverCallback} instead.82*/83export type ResizeObserverCallback = (84entries: ReadonlyArray<ResizeObserverEntry>,85observer: ResizeObserver,86) => void87export interface UseResizeObserverOptions88extends ResizeObserverOptions, ConfigurableWindow {}89export interface UseResizeObserverReturn extends Supportable {90stop: () => void91}92/**93* Reports changes to the dimensions of an Element's content or the border-box94*95* @see https://vueuse.org/useResizeObserver96* @param target97* @param callback98* @param options99*/100export declare function useResizeObserver(101target:102| MaybeComputedElementRef103| MaybeComputedElementRef[]104| MaybeRefOrGetter<MaybeElement[]>,105callback: globalThis.ResizeObserverCallback,106options?: UseResizeObserverOptions,107): UseResizeObserverReturn108```109