Category | Browser |
---|---|
Export Size | 757 B |
Last Changed | 2 weeks ago |
Reactive load an image in the browser, you can wait the result to display it or show a fallback.
<script setup> import { useImage } from '@vueuse/core' const avatarUrl = 'https://place.dog/300/200' const { isLoading } = useImage({ src: avatarUrl }) </script> <template> <span v-if="isLoading">Loading</span> <img v-else :src="avatarUrl"> </template>
This function also provides a renderless component version via the
@vueuse/components
package. Learn more about the usage.
<template> <UseImage src="https://place.dog/300/200"> <template #loading> Loading.. </template> <template #error> Failed </template> </UseImage> </template>
export interface UseImageOptions { /** Address of the resource */ src: string /** Images to use in different situations, e.g., high-resolution displays, small monitors, etc. */ srcset?: string /** Image sizes for different page layouts */ sizes?: string } /** * Reactive load an image in the browser, you can wait the result to display it or show a fallback. * * @see https://vueuse.org/useImage * @param options Image attributes, as used in the <img> tag * @param asyncStateOptions */ export declare function useImage<Shallow extends true>( options: MaybeRefOrGetter<UseImageOptions>, asyncStateOptions?: UseAsyncStateOptions<Shallow> ): UseAsyncStateReturn<HTMLImageElement | undefined, [], true> export type UseImageReturn = ReturnType<typeof useImage>
© 2019-present Anthony Fu
Licensed under the MIT License.
https://vueuse.org/core/useImage/