国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

vue使用axios實現文件上傳進度的實時更新詳解

2024-05-06 15:23:29
字體:
來源:轉載
供稿:網友

axios 簡介

axios 是一個基于Promise 用于瀏覽器和 nodejs 的 HTTP 客戶端,它本身具有以下特征:

從瀏覽器中創建 XMLHttpRequest 從 node.js 發出 http 請求 支持 Promise API 攔截請求和響應 轉換請求和響應數據 取消請求 自動轉換JSON數據 客戶端支持防止 CSRF/XSRF

引入方式:

$ npm install axios//使用淘寶源$ cnpm install axios//或者使用cdn:<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

安裝其他插件的時候,可以直接在 main.js 中引入并使用 Vue.use()來注冊,但是 axios并不是vue插件,所以不能 使用Vue.use() ,所以只能在每個需要發送請求的組件中即時引入。

為了解決這個問題,我們在引入 axios 之后,通過修改原型鏈,來更方便的使用。

//main.js

import axios from 'axios'Vue.prototype.$http = axios

在 main.js 中添加了這兩行代碼之后,就能直接在組件的 methods 中使用 $http命令

methods: {postData () {this.$http({method: 'post',url: '/user',data: {name: 'xiaoming',info: '12'}})}

更多的基礎知識大家可以參考這篇文章://m.survivalescaperooms.com/article/110324.htm

vue使用axios實現文件上傳進度實時更新

XHR二級增加了progress事件,我們可以據此在瀏覽器接收新數據期間添加實時數據進度條,從而使得交互更加友好

vue模板

<div class="progress" @click="upload"   :style="{backgroundImage:'linear-gradient(to right,#C0C7CB 0%,#C0C7CB '+progress+',#E1E6E9 '+progress+',#E1E6E9 100%)'}">

vue-js

 var form = new FormData() form.append('file', vm.$refs.upload.files[0]) form.append('id', id) form.append('type', type) var config = {  onUploadProgress: progressEvent => {   var complete = (progressEvent.loaded / progressEvent.total * 100 | 0) + '%'   this.progress = complete  } } axios.post(`api/uploadFile`,  form, config).then((res) => {  if (res.data.status === 'success') {   console.log('上傳成功')  } })

關鍵點在于progress事件,而axios對ajax封裝之后需要在axios的config參數里面寫好事件處理函數(具體參數寫法可查看axios文檔)

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對錯新站長站的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 七台河市| 宁阳县| 福安市| 新绛县| 通城县| 岑溪市| 克拉玛依市| 宣化县| 襄城县| 东丰县| 太湖县| 广德县| 黄山市| 石渠县| 丹寨县| 松滋市| 蒙城县| 泰州市| 酉阳| 泸定县| 澄城县| 湘潭市| 宁都县| 金寨县| 黄石市| 都兰县| 信宜市| 兴义市| 墨脱县| 镇安县| 延边| 桑日县| 两当县| 永善县| 龙江县| 遵义县| 玉树县| 玉树县| 西藏| 湟中县| 东兰县|