Vue3+element-plus 实现图片图片
创始人
2024-11-23 10:35:43

在看下面内容之前,请一定要去看看 element-plus 中上传组件 el-upload组件
上传组件
重点关注下面几个属性
:auto-upload=“false” , 关闭自动上传
:on-change=“onUploadFile” 监听上传情况
简单示例:

                                                 

方式一: URL.createObjectURL()

注意:

我这里 定义 formModel 为提交数据 , 这个和后端接口有关,情根据实际进行设计

const imgUrl = ref('')  // 预览图片路径  const onUploadFile = (uploadFile) => {   imgUrl.value = URL.createObjectURL(uploadFile.raw)   formModel.value.cover_img = uploadFile.raw   // console.log('上传文件', formModel.value) } 
介绍 URL.createObjectURL()

参数: 用于创建 URL 的 File 对象、Blob 对象或者 MediaSource 对象。​
返回值: 一个DOMString包含了一个对象URL,该URL可用于指定源 object的内容。
使用createObjectURL可以节省性能并更快速,只不过需要在不使用的情况下手动释放内存
所以上面的代码可以进行优化:

const onUploadFile = (uploadFile) => {   if (imgUrl.value) {     URL.revokeObjectURL(imgUrl.value)     imgUrl.value = ''   }   imgUrl.value = URL.createObjectURL(uploadFile.raw)   console.log(imgUrl.value)   formModel.value.cover_img = uploadFile.raw   // console.log('上传文件', formModel.value) } 

超详细URL.createObjectURL,还有例子!!!还有对比FileReader.readAsDataURL(file)

方式二: readAsDataURL

使用了FileReader对象来读取文件内容,并将其转换为base64编码的字符串。FileReader是一个读取文件内容的API,它可以异步读取文件内容并将其转换为纯文本或DataURL
详解

     

拓展
@click=“uploadRef.$el.querySelector(‘input’).click()”
这里就是通过 querySelector(“input”) 获取DOM元素,然后调用 click() 方法
querySelectorquerySelectorAll,它们是 DOM API 的一部分,用于根据 CSS 选择器在文档中查询元素。

  1. querySelector:

    • 这个方法返回文档中匹配指定 CSS 选择器的第一个元素。如果没有找到匹配的元素,它将返回 null
  2. querySelectorAll:

    • 这个方法返回一个 NodeList 对象,包含了文档中所有匹配指定 CSS 选择器的元素。如果没有找到任何元素,它将返回一个空的 NodeList 对象。

以下是 querySelectorquerySelectorAll 的用法示例:

// 使用 querySelector 获取第一个匹配的元素 const firstElement = document.querySelector('.my-class');  // 使用 querySelectorAll 获取所有匹配的元素 const allElements = document.querySelectorAll('.my-class');  // NodeList 对象可以使用 length 属性来获取元素数量 if (allElements.length > 0) {   // 获取第一个元素   const firstElement = allElements[0];   // 获取最后一个元素   const lastElement = allElements[allElements.length - 1]; } 

code

     

相关内容

热门资讯

如何从0到1打造微博热搜 在当下的互联网生态中,微博热搜已成为话题发酵、流量聚集的重要平台。一个爆款热搜话题,能在短时间内带来...
四川“扫码飞”第二批试点空域上... 从5月4日起,四川省无人机便捷飞行小程序“扫码飞”第二批试点空域陆续上线,共释放空域面积约6.7平方...
原创 科... 地球根本不是我们的家园,而是一座被精心设计的巨型监狱,太阳系就是牢不可破的牢笼,不管人类科技再发达,...
液体灌装机选型指南:无锡诺亚机... 导语:液体灌装机作为日化、食品、医药等行业产线中的核心设备,其稳定性、精度及服务响应能力直接影响生产...
仿人机器人触觉与语音技术正加速... 仿人机器人正快速从工厂、物流场景向更广泛的通用场景拓展,甚至逐步迈入家庭,成为老年人的陪伴与助理。这...