Vue3 打包批量下载
时间: 2023-10-04 19:13:23 浏览: 70
Vue3打包批量下载可以通过以下步骤实现:
1. 首先,安装axios、jszip和file-saver这三个依赖:
```
yarn add axios
yarn add jszip
yarn add file-saver
```
2. 然后,导入axios:
```javascript
import axios from 'axios'
```
3. 创建一个getFile函数,用于获取文件的blob数据:
```javascript
const getFile = url => {
return new Promise((resolve, reject) => {
axios.get(url, { responseType: 'blob' })
.then(response => {
resolve(response.data)
})
.catch(error => {
reject(error)
})
})
}
```
4. 创建一个downloadFiles函数,用于批量下载文件:
```javascript
const downloadFiles = async (urls, zipName) => {
const zip = new JSZip()
const promises = urls.map(url => {
return getFile(url)
.then(fileData => {
const fileName = url.substring(url.lastIndexOf('/') + 1)
zip.file(fileName, fileData)
})
})
await Promise.all(promises)
zip.generateAsync({ type: 'blob' })
.then(content => {
saveAs(content, zipName)
})
}
```
5. 调用downloadFiles函数,传入文件的url数组和要生成的zip文件名:
```javascript
const urls = ['url1', 'url2', 'url3']
const zipName = 'files.zip'
downloadFiles(urls, zipName)
```
这样,Vue3就可以通过以上步骤实现打包批量下载。
阅读全文