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

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

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

vue下載文件常用方式

直接打開

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

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

我們可以自己封裝一個(gè)方法

比如如下:

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)
? ? //點(diǎn)擊下載
? ? downloadElement.click()
? ? //下載完成移除元素
? ? document.body.removeChild(downloadElement)
? ? if (revokeObjectURL == null || revokeObjectURL) {
? ? ? ? //釋放掉blob對(duì)象
? ? ? ? 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)用的那個(gè)頁面中直接引入使用就好啦

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

這樣看是不是就挺容易的

vue常用的命令

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

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

清理緩存     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)建一個(gè)vue項(xiàng)目

vue init webpack 項(xiàng)目名 

vue項(xiàng)目部署

npm install

啟動(dòng)項(xiàng)目

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)建一個(gè)基于 webpack 模板的新項(xiàng)目

vue init webpack 項(xiàng)目名稱

3.運(yùn)行:npm run dev

4.安裝依賴:cd 項(xiàng)目名稱 npm install

5.安裝vue-resource插件(通過XMLHttpRequest或JSONP發(fā)起請(qǐng)求并處理響應(yīng) //get post請(qǐng)求):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)正在運(yùn)行的命令,則ctrl +c

11.安裝指定版本jquery

npm i jquery@版本號(hào)

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

    Vue?Router中Matcher的初始化流程

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

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

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

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

    key屬性是一個(gè)特殊的屬性,用于標(biāo)識(shí)每個(gè)節(jié)點(diǎn)的唯一性。在Vue2.x版本中的key和Vue3.x版本中的key有很大的不同,那么在這篇文章中,我們將會(huì)討論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的合并策略 ,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • Vue+ElementUI容器無法鋪滿網(wǎng)頁的問題解決

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

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

最新評(píng)論

平顺县| 南漳县| 安新县| 元朗区| 太仆寺旗| 教育| 霍邱县| 永年县| 庆云县| 康保县| 青岛市| 定远县| 蒙山县| 大安市| 金昌市| 嫩江县| 修武县| 唐海县| 金坛市| 民权县| 武定县| 大庆市| 东兰县| 三都| 庄河市| 东明县| 延长县| 中超| 孙吴县| 翼城县| 吉林省| 云霄县| 陆丰市| 邯郸县| 海原县| 白银市| 木里| 临桂县| 湘潭县| 五河县| 颍上县|