VueUse useObjectUrl 响应式对象URL,通过URL.createObjectURL()为File、Blob或MediaSource对象创建URL,组件卸载时通过URL.revokeObjectURL()自动释放URL。
URL.createObjectURL() 方法会创建一个对象URL,这个 URL 的生命周期和创建它的窗口中的 document 绑定。这个新的URL 对象表示指定的 File 对象或 Blob 对象,可以通过这个URL访问对象。
<script setup>
import { useObjectUrl } from '@vueuse/core'
import { shallowRef } from 'vue'
const file = shallowRef()
const url = useObjectUrl(file)
const onFileChange = (event) => {
file.value = event.target.files[0]
}
</script>
<template>
<input type="file" @change="onFileChange" />
<a :href="url">Open file</a>
</template>
<template>
<UseObjectUrl v-slot="url" :object="file">
<a :href="url">Open file</a>
</UseObjectUrl>
</template>
<script setup>
//导入组件
import {UseObjectUrl} from '@vueuse/components'
</script>
例子