跳到内容

useObjectUrl

类别
导出大小
263 B
最后更改
5 天前

表示对象的响应式 URL。

通过 URL.createObjectURL() 为提供的 FileBlobMediaSource 创建 URL,并在源更改或组件卸载时通过 URL.revokeObjectURL() 自动释放 URL。

演示

选择文件
对象 URL

用法

vue
<script setup>
import { useObjectUrl } from '@vueuse/core'
import { shallowRef } from 'vue'

const file = shallowRef()
const url = useObjectUrl(file)

function onFileChange(event) {
  file.value = event.target.files[0]
}
</script>

<template>
  <input type="file" @change="onFileChange">

  <a :href="url">Open file</a>
</template>

组件用法

此函数还通过 @vueuse/components 包提供了一个无渲染组件版本。 了解更多关于用法的信息

vue
<template>
  <UseObjectUrl v-slot="url" :object="file">
    <a :href="url">Open file</a>
  </UseObjectUrl>
</template>

类型声明

typescript
/**
 * Reactive URL representing an object.
 *
 * @see https://vueuse.org.cn/useObjectUrl
 * @param object
 */
export declare function useObjectUrl(
  object: MaybeRefOrGetter<Blob | MediaSource | null | undefined>,
): Readonly<Ref<string | undefined, string | undefined>>

源代码演示文档

贡献者

Anthony Fu
IlyaL
Anthony Fu
Andrew Ferreira
vaakian X
BaboonKing
Michael Hüneburg

更新日志

v12.8.0 于 2025/3/5
7432f - feat(types): 弃用 MaybeRefMaybeRefOrGetter,支持 Vue 原生 (#4636)
v12.3.0 于 2025/1/2
59f75 - feat(toValue): 弃用 @vueuse/shared 中的 toValue,支持 Vue 原生
v12.0.0-beta.1 于 2024/11/21
0a9ed - feat!: 移除 Vue 2 支持,优化捆绑包并清理 (#4349)
v10.3.0 于 2023/7/30
d3f7e - fix: 改进参数类型 (#3239)

在 MIT 许可证下发布。