vue vue3 导出

api.exteriorExport(JSON.parse(lineArr)).then((res)=>{
        const blob = new Blob([res.data.result], { type: 'text/csv;charset=GBK;' })
        const url = URL.createObjectURL(blob)
        const link = document.createElement('a')
        link.href = url
        const name = res.headers['content-disposition'].slice(res.headers['content-disposition'].indexOf("=")+1)
        link.download = name
        document.body.appendChild(link)
        link.click()
        document.body.removeChild(link)
        URL.revokeObjectURL(url)
    })

这段代码执行了一个流程,主要用于下载数据并将其保存为文件。下面是这段代码的逐步解释:

api.exteriorExport 是一个函数调用,它是一个API方法,用于调用后台接口获取数据。

JSON.parse(lineArr) 将 lineArr(JSON字符串)解析为JavaScript对象或数组。

这个函数调用的结果是一个Promise,因此使用 .then() 方法来处理其响应。

.then((res) => {...});

当 api.exteriorExport 的调用完成并返回结果时,.then() 里的回调函数会被执行。

res 是这个回调函数的参数,它包含了API的响应数据。

const blob = new Blob([res.data.result], { type: 'text/csv;charset=GBK;' });

使用响应数据 res.data.result 创建一个新的Blob对象。Blob对象用于表示一段不可变的原始数据。

这个Blob对象被设置为CSV格式,并使用GBK字符集。根据需求进行修改。

const url = URL.createObjectURL(blob);

使用Blob对象创建一个临时的URL,这个URL可以用来表示这个Blob对象。

const link = document.createElement('a');

创建一个新的<a>元素(即链接元素)。

link.href = url;

将新创建的链接元素的href属性设置为之前创建的Blob的URL。

const name = res.headers['content-disposition'].slice(res.headers['content-disposition'].indexOf("=")+1);

从响应头 res.headers['content-disposition'] 中提取文件名。

这通常用于确定下载文件的默认名称。根据需求进行修改。

link.download = name;

设置链接元素的download属性为提取的文件名,这样当用户点击这个链接时,浏览器会下载数据并保存为具有这个名称的文件。

document.body.appendChild(link);

将新创建的链接元素添加到文档的body中。

link.click();

模拟用户点击这个链接,从而触发下载操作。

document.body.removeChild(link);

下载完成后,从文档的body中移除这个链接元素。

URL.revokeObjectURL(url);

释放之前创建的Blob URL,以避免内存泄漏。

总的来说,这段代码的主要目的是从API获取数据,将其转换为CSV格式,并触发浏览器的下载操作,以便用户可以保存这些数据为CSV文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值