最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue關(guān)于下載文件常用的幾種方式

 更新時間:2022年10月12日 11:07:54   作者:憤怒的小前端  
這篇文章主要介紹了vue關(guān)于下載文件常用的幾種方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

vue下載文件常用方式

直接打開

直接打開是指我們直接使用window.open(URL)的方法

  • 優(yōu)點:簡單操作
  • 缺點:沒辦法攜帶token

我們可以自己封裝一個方法

比如如下:

import axios from "axios"
import * as auth from '@/utils/auth.js'
let ajax = axios.create({
? ? baseURL: process.env.VUE_APP_BASE_API,
? ? timeout: 100000
});
ajax.interceptors.request.use(config => {
? ? ? ? config.headers = {
? ? ? ? ? ? Authorization: auth.getToken(),
? ? ? ? ? ? // OrgId: auth.getUser().orgId,
? ? ? ? ? ? // UserId: auth.getUser().id,
? ? ? ? }
? ? ? ? return config
? ? },
? ? err => {
? ? ? ? return Promise.reject(err)
? ? })
let downloadFile = async (url, formData, options) => {
? ? await ajax.post(url, formData, {responseType: 'arraybuffer'}).then(resp => download(resp, options))
}
let getFile = async (url, options) => {
? ? await ajax.get(url, {responseType: 'blob'}).then(resp => download(resp, options))
}
let download = (resp, options) => {
? ? let blob = new Blob([resp.data], {type: options.fileType ? options.fileType : 'application/octet-binary'})
? ? //創(chuàng)建下載的鏈接
? ? let href = window.URL.createObjectURL(blob)
? ? downloadBlob(href, options.fileName)
}
let downloadBlob = (blobUrl, fileName, revokeObjectURL) => {
? ? let downloadElement = document.createElement('a')
? ? downloadElement.href = blobUrl
? ? //下載后文件名
? ? downloadElement.download = fileName
? ? document.body.appendChild(downloadElement)
? ? //點擊下載
? ? downloadElement.click()
? ? //下載完成移除元素
? ? document.body.removeChild(downloadElement)
? ? if (revokeObjectURL == null || revokeObjectURL) {
? ? ? ? //釋放掉blob對象
? ? ? ? window.URL.revokeObjectURL(blobUrl)
? ? }
}
let getDownloadFileUrl = async (url, fileType) => {
? ? let blob
? ? await ajax.get(url, {responseType: 'blob'}).then(resp => {
? ? ? ? blob = new Blob([resp.data], {type: fileType ? fileType : 'application/octet-binary'});
? ? })
? ? return window.URL.createObjectURL(blob);
}
let getDownloadFileUrlByPost = async (url, data, fileType) => {
? ? let blob
? ? await ajax.post(url, data, {responseType: 'blob'}).then(resp => {
? ? ? ? blob = new Blob([resp.data], {type: fileType ? fileType : 'application/octet-binary'});
? ? })
? ? return window.URL.createObjectURL(blob);
}
let getDownloadFileBlob = async (url, fileType) => {
? ? let blob
? ? await ajax.get(url, {responseType: 'blob'}).then(resp => {
? ? ? ? blob = new Blob([resp.data], {type: fileType ? fileType : 'application/octet-binary'});
? ? })
? ? return blob;
}
export default {
? ? ajax,
? ? downloadFile,
? ? getFile,
? ? getDownloadFileUrl,
? ? getDownloadFileUrlByPost,
? ? getDownloadFileBlob,
? ? downloadBlob
}

然后在我們調(diào)用的那個頁面中直接引入使用就好啦

//先引用
import ajax from '../../utils/ajax.js'
//使用
ajax.downloadFile('URL',null,{下載的文件名稱})

這樣看是不是就挺容易的

vue常用的命令

創(chuàng)建vue項目常用命令

如果vue項目出錯了你可以把依賴刪掉,清理一下緩存在重新安裝

清理緩存     npm cache clean --force

第一步,創(chuàng)建淘寶鏡像,安裝npm鏡像(如果已經(jīng)安裝的就直接第二步就可以了)

npm install -g cnpm --registry=https://registry.npm.taobao.org

第二步, 全局安裝vue-vli

npm install --g vue-cli

第三步, 創(chuàng)建一個vue項目

vue init webpack 項目名 

vue項目部署

npm install

啟動項目

npm run dev/npm run serve

1、安裝element_ui

npm i element-ui -S

安裝成功后在main.js中到導(dǎo)入element-ui,并使用

? ? import ElementUI from 'element-ui';
? ? import 'element-ui/lib/theme-chalk/index.css';
? ? Vue.use(ElementUI);

2、安裝vue_router

npm install vue-router --save?

安裝完成如果沒有文件夾router(一般都有vue2.0下需要自己選擇安裝,vue3.0創(chuàng)建有)我們直接創(chuàng)建index.js文件。文件放入以下配置

import Vue from 'vue'
import VueRouter from 'vue-router';
Vue.use(VueRouter);?
import XXX "../src/components/xxx";
??
const routes = [
? {
? ? path:'/'
? ? component: XXX
? },?
]
?
const router = new VueRouter({
? routes
})
?
export default router

要在main.js中應(yīng)用router.js文件。我們需要在中放入router

import router from "../router";
?? ?
new Vue({
? router,
? el: '#app',
? components: { App },
? template: '<App/>'
})

3、 安裝axios組件,安裝命令如下:

npm install --save vue-axios ?

 在main.js文件下引入如下代碼:

import axios from 'axios'
import VueAxios from 'vue-axios'
Vue.use(VueAxios, axios)

總結(jié) 

1.安裝vue-cli

npm install --global vue-cli

2.創(chuàng)建一個基于 webpack 模板的新項目

vue init webpack 項目名稱

3.運行:npm run dev

4.安裝依賴:cd 項目名稱 npm install

5.安裝vue-resource插件(通過XMLHttpRequest或JSONP發(fā)起請求并處理響應(yīng) //get post請求):npm install vue-resource --save

6.安裝路由插件:

npm install vue-router --save

7.安裝element-ui:

npm i element-ui -S(安裝好之后要記得在main.js中引入)

8.安裝axios npm install axios --save

9.安裝Echarts npm install echarts --save

10.如果想要終止終端(cmd)正在運行的命令,則ctrl +c

11.安裝指定版本jquery

npm i jquery@版本號

12.若項目中node_modules文件被刪除,使用 npm install 即能把package.json中的dependencies中所有依賴項都下載回來

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • VUE3中引入.env下的環(huán)境變量,顯示process未定義問題

    VUE3中引入.env下的環(huán)境變量,顯示process未定義問題

    這篇文章主要介紹了VUE3中引入.env下的環(huán)境變量,顯示process未定義問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Vue3實現(xiàn)表單輸入的雙向綁定的示例代碼

    Vue3實現(xiàn)表單輸入的雙向綁定的示例代碼

    Vue.js 是一個漸進式的JavaScript框架,廣泛用于構(gòu)建交互式用戶界面,在 Vue 中,雙向綁定是一項非常核心的概念,尤其是在處理表單輸入時,它使得數(shù)據(jù)和用戶界面之間的互動變得簡單又高效,在本篇博客中,我們將深入探討如何在 Vue 3 中實現(xiàn)表單輸入的雙向綁定
    2025-01-01
  • vue加載視頻流,實現(xiàn)直播功能的過程

    vue加載視頻流,實現(xiàn)直播功能的過程

    這篇文章主要介紹了vue加載視頻流,實現(xiàn)直播功能的過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • 使用vscode格式化文檔無效的解決辦法(vue代碼格式化文檔無效)

    使用vscode格式化文檔無效的解決辦法(vue代碼格式化文檔無效)

    這篇文章主要給大家介紹了關(guān)于使用vscode格式化文檔無效的解決辦法,也就是vue代碼格式化文檔無效,這是最近突然遇到的一個問題,這里給大家介紹一下解決的辦法,需要的朋友可以參考下
    2023-08-08
  • 在Vue中實現(xiàn)不刷新的iframe頁面的方案

    在Vue中實現(xiàn)不刷新的iframe頁面的方案

    在Vue項目中,我們可能會遇到這樣的需求:需要在應(yīng)用中嵌入iframe頁面,并且要求在路由切換的過程中,iframe的內(nèi)容不會被刷新,本文將介紹如何解決這個問題,并給出具體的實現(xiàn)方案,需要的朋友可以參考下
    2025-01-01
  • Vue?Router中Matcher的初始化流程

    Vue?Router中Matcher的初始化流程

    這篇文章主要介紹了Vue?Router中Matcher的初始化流程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue中音頻wavesurfer.js的使用方法

    vue中音頻wavesurfer.js的使用方法

    這篇文章主要為大家詳細介紹了vue中音頻wavesurfer.js的使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • 詳解key在Vue3和Vue2的不同之處

    詳解key在Vue3和Vue2的不同之處

    key屬性是一個特殊的屬性,用于標識每個節(jié)點的唯一性。在Vue2.x版本中的key和Vue3.x版本中的key有很大的不同,那么在這篇文章中,我們將會討論Vue2中的key和Vue3中的key的區(qū)別
    2023-04-04
  • vue 2.5.1 源碼學(xué)習(xí) 之Vue.extend 和 data的合并策略

    vue 2.5.1 源碼學(xué)習(xí) 之Vue.extend 和 data的合并策略

    這篇文章主要介紹了Vue.extend 和 data的合并策略 ,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • Vue+ElementUI容器無法鋪滿網(wǎng)頁的問題解決

    Vue+ElementUI容器無法鋪滿網(wǎng)頁的問題解決

    這篇文章主要介紹了Vue+ElementUI容器無法鋪滿網(wǎng)頁的問題解決,文章通過圖文結(jié)合的方式給大家講解的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-08-08

最新評論

澄江县| 无极县| 迭部县| 德惠市| 海口市| 通渭县| 疏附县| 体育| 华池县| 伊宁县| 墨江| 福贡县| 雅江县| 桃江县| 铜陵市| 武邑县| 合水县| 谷城县| 阿城市| 西安市| 上高县| 富川| 三门峡市| 清新县| 河津市| 盐源县| 新津县| 邯郸县| 布尔津县| 简阳市| 如皋市| 黎城县| 温泉县| 尤溪县| 会宁县| 永顺县| 体育| 德保县| 博湖县| 衢州市| 监利县|