📄 useResizeObserver¶
📊 Analysis Summary¶
| Metric | Count |
|---|---|
| 🔧 Functions | 3 |
| 📦 Imports | 10 |
| 🟢 Vue Composition API | 2 |
| 📐 Interfaces | 4 |
| 📑 Type Aliases | 1 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 packages/core/useResizeObserver/index.ts
📦 Imports¶
| Name | Source |
|---|---|
ConfigurableWindow |
../_configurable |
Supportable |
../types |
MaybeComputedElementRefOrArray |
../unrefElement |
tryOnScopeDispose |
@vueuse/shared |
computed |
vue |
toValue |
vue |
watch |
vue |
defaultWindow |
../_configurable |
unrefElement |
../unrefElement |
useSupported |
../useSupported |
Vue Composition API¶
| Name | Type | Reactive Variables | Composables |
|---|---|---|---|
computed |
computed | none | none |
watch |
watch | none | none |
Functions¶
useResizeObserver(target: MaybeComputedElementRefOrArray, callback: globalThis.ResizeObserverCallback, options: UseResizeObserverOptions): UseResizeObserverReturn¶
Reports changes to the dimensions of an Element's content or the border-box
Parameters:
targetany: No descriptioncallbackany: No descriptionoptionsany: No description
See: https://vueuse.org/useResizeObserver
Raw JSDoc
Calls:
useSupported (from ../useSupported)observer.disconnectcomputed (from vue)toValue (from vue)Array.isArray_targets.mapunrefElement (from ../unrefElement)watch (from vue)cleanupobserver!.observestopWatchtryOnScopeDispose (from @vueuse/shared)
Code
export function useResizeObserver(
target: MaybeComputedElementRefOrArray,
callback: globalThis.ResizeObserverCallback,
options: UseResizeObserverOptions = {},
): UseResizeObserverReturn {
const { window = defaultWindow, ...observerOptions } = options
let observer: ResizeObserver | undefined
const isSupported = useSupported(() => window && 'ResizeObserver' in window)
const cleanup = () => {
if (observer) {
observer.disconnect()
observer = undefined
}
}
const targets = computed(() => {
const _targets = toValue(target)
return Array.isArray(_targets)
? _targets.map(el => unrefElement(el))
: [unrefElement(_targets)]
})
const stopWatch = watch(
targets,
(els) => {
cleanup()
if (isSupported.value && window) {
observer = new ResizeObserver(callback)
for (const _el of els) {
if (_el)
observer!.observe(_el, observerOptions)
}
}
},
{ immediate: true, flush: 'post' },
)
const stop = () => {
cleanup()
stopWatch()
}
tryOnScopeDispose(stop)
return {
isSupported,
stop,
}
}
Internal helpers¶
Declared inside another function in this file.
cleanup(): void¶
Returns: void
Calls:
observer.disconnect
stop(): void¶
Returns: void
Calls:
cleanupstopWatch
Interfaces¶
ResizeObserverSize¶
Interface Code
Properties¶
| Name | Type | Optional | Description |
|---|---|---|---|
inlineSize |
number |
✗ | not shown |
blockSize |
number |
✗ | not shown |
ResizeObserverEntry¶
Interface Code
Properties¶
| Name | Type | Optional | Description |
|---|---|---|---|
target |
Element |
✗ | not shown |
contentRect |
DOMRectReadOnly |
✗ | not shown |
borderBoxSize |
ReadonlyArray<ResizeObserverSize> |
✗ | not shown |
contentBoxSize |
ReadonlyArray<ResizeObserverSize> |
✗ | not shown |
devicePixelContentBoxSize |
ReadonlyArray<ResizeObserverSize> |
✗ | not shown |
UseResizeObserverOptions¶
Interface Code
UseResizeObserverReturn¶
Properties¶
| Name | Type | Optional | Description |
|---|---|---|---|
stop |
() => void |
✗ | not shown |
Type Aliases¶
ResizeObserverCallback¶
/* * @deprecated This interface is now available in the DOM lib. * Use the global {@link globalThis.ResizeObserverCallback} instead. /
type ResizeObserverCallback = (entries: ReadonlyArray<ResizeObserverEntry>, observer: ResizeObserver) => void;
Generated by Syntax Scribe