国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

前端實現(xiàn)真實可動態(tài)變化進度條,axios+ Ant Design Vue實現(xiàn).

這篇具有很好參考價值的文章主要介紹了前端實現(xiàn)真實可動態(tài)變化進度條,axios+ Ant Design Vue實現(xiàn).。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

最近有一個新需求,要求在前端實現(xiàn)真實的進度條展示,我首先想到了?Ant Design Vue的upload組件,在antd官網(wǎng)里upload組件不僅有上傳功能,并且還附帶了Progress?進度條組件,還擁有上傳成功和失敗的兩種狀態(tài)的區(qū)分,可以說是十分貼心了,如圖

axios 進度條,vue.js,前端,javascript

?但是很可惜這個組件上傳文件的話,你要在action里面指定你上傳的路徑,他會通過change函數(shù)傳遞你選擇的文件列表而后自動把這個文件拿到并且上傳到你給的地址中去,(也就是說你只需要給一個后端地址,其余的你選擇了文件他就會幫你上傳的)代碼如下所示,

<template>
  <a-upload-dragger
    v-model:fileList="fileList"
    name="file"
    :multiple="true"
    action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
    @change="handleChange"
    @drop="handleDrop"
  >
    <p class="ant-upload-drag-icon">
      <inbox-outlined></inbox-outlined>
    </p>
    <p class="ant-upload-text">Click or drag file to this area to upload</p>
    <p class="ant-upload-hint">
      Support for a single or bulk upload. Strictly prohibit from uploading company data or other
      band files
    </p>
  </a-upload-dragger>
</template>
<script lang="ts">
import { InboxOutlined } from '@ant-design/icons-vue';
import { message } from 'ant-design-vue';
import { defineComponent, ref } from 'vue';
import type { UploadChangeParam } from 'ant-design-vue';

export default defineComponent({
  components: {
    InboxOutlined,
  },
  setup() {
    const handleChange = (info: UploadChangeParam) => {
      const status = info.file.status;
      if (status !== 'uploading') {
        console.log(info.file, info.fileList);
      }
      if (status === 'done') {
        message.success(`${info.file.name} file uploaded successfully.`);
      } else if (status === 'error') {
        message.error(`${info.file.name} file upload failed.`);
      }
    };
    return {
      handleChange,
      fileList: ref([]),
      handleDrop: (e: DragEvent) => {
        console.log(e);
      },
    };
  },
});
</script>

但是我這個項目里面不僅要求上傳文件,同時還要傳遞一定的參數(shù),那就不能像他這樣直接給一個地址了,沒辦法只另辟蹊徑了.上面說過其實antd 的upload組件里面也是包含的Progress?進度條組件,那這樣的話我們剛好用它的Progress 組件就好了.

antd官網(wǎng)Progress組件示例

axios 進度條,vue.js,前端,javascript

?接下來就是具體的操作步驟了,其實也很簡單

1.引入Progress并使用,同時給percent屬性綁定一個uploadProgress的自定義值,這個percent屬性其實就是進度條顯示的百分比,設(shè)置100就是進度條全滿,設(shè)置為0就是進度條為空.(進度條需要自己放在合適的位置)

axios 進度條,vue.js,前端,javascript

2.調(diào)用函數(shù),手動拿取文件并發(fā)送請求,如下圖SystemImports函數(shù)其實就是一個請求函數(shù),第一個參數(shù)就是后端需要的額外參數(shù)(這個不重要,屬于我的項目的需求),第二個參數(shù)formData其實就是我們拿取到的文件并給他以formData的形式傳給后端,也就是上傳文件并獲取這一過程(這個過程不懂得可以直接搜索js原生文件上傳formData形式,我在這里就不過多贅述了)第三個參數(shù)也是最重要的參數(shù),圖中可以看到第三個參數(shù)是一個回調(diào)函數(shù),我把這個回調(diào)函數(shù)接收到的參數(shù)(progressEvent)里的(loaded)屬性和(total)進行處理后賦值給了uploadProgress.value,第一步里面percent屬性綁定的值也就是進度條的進度剛好就是uploadProgress.value.也就是說我這里處理的其實就是進度條的實時進度.

axios 進度條,vue.js,前端,javascript

3.那為什么我可以在直接拿到第三個參數(shù)回調(diào)函數(shù)的參數(shù)值progressEvent并且直接使用呢,這樣就可以拿到實時進度了嗎,其實關(guān)鍵就在下面這一步,如圖這是我封裝好的請求函數(shù),這里有一個重要的屬性就是onUploadProgress,我將第三個參數(shù)直接賦給他了,其實這樣一來我們在上面請求函數(shù)里拿到的參數(shù)progressEvent就是該請求的一些實時信息,這個信息是會同步一直更新的 在你上傳請求結(jié)束之前.

這是axios官網(wǎng)對onUploadProgress的解釋

axios 進度條,vue.js,前端,javascript

?

progressEvent就是獲得的當(dāng)前監(jiān)控的上傳信息,而progressEvent.loaded就是當(dāng)前請求已發(fā)送數(shù)量,progressEvent.total就是當(dāng)前請求應(yīng)該發(fā)送的總數(shù)據(jù)數(shù)量,通過相應(yīng)的處理自然可以知道當(dāng)前處理進行到百分之幾了,然后賦值給percent屬性就可以了,所以到這一步基本上就可以像圖片中那樣處理進度條了,進度條也會實時變化了.

axios 進度條,vue.js,前端,javascript

?到了這里可能有些人試過之后發(fā)現(xiàn),進度條確實變了 但是每次都是只變動一次,從0到100就結(jié)束了,這很有可能是因為上傳速度過快,間隔過小導(dǎo)致的,建議開啟瀏覽器調(diào)試,并切換到慢速3g上傳一些較大的文件再次測試.當(dāng)時我就能看到打印了許多個86的值,(第二步的圖片里,我再處理函數(shù)里面打印了progressEvent)

以上步驟其實已經(jīng)能夠?qū)崟r顯示進度條了,其實還有一個問題需要處理,就是我們前端上傳完畢了,但是后端還需要處理時間呀,那此時我們的上傳進度是多少呢,是100%因為uploadProgress監(jiān)控的是上傳進度的完成,這就會造成我們進度條已經(jīng)100%,但是后端仍需時間處理,最后導(dǎo)致返回滯后于進度條,那這樣的話我們可以考慮給他加一個loading狀態(tài)提示數(shù)據(jù)正在處理中,從而更好的提升用戶體驗.

各位大佬你們有什么對于實施進度條的新方法或者更合適的解決方案嗎,求指導(dǎo)!!!文章來源地址http://www.zghlxwxcb.cn/news/detail-701184.html

到了這里,關(guān)于前端實現(xiàn)真實可動態(tài)變化進度條,axios+ Ant Design Vue實現(xiàn).的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Ant-Design-Pro-V5: ProTable前端導(dǎo)出excel表格。

    Ant-Design-Pro-V5: ProTable前端導(dǎo)出excel表格。

    Prtable表格中根據(jù)搜索條件實現(xiàn)excel表格導(dǎo)出。 代碼展示: index.jsx 數(shù)據(jù)字典格式返回: 以 teacherTypeObj 為例 向services.js中 lecturerExportExcel 方法中傳入的格式為: services.js中 lecturerExportExcel 導(dǎo)出方法: utils 中 paramsFilter 方法:過濾無用參數(shù)

    2024年02月09日
    瀏覽(23)
  • vue3 組合式 ant.design組件Table嵌套表格,從后端獲取數(shù)據(jù)并動態(tài)渲染

    在根據(jù)官方文檔使用ant.design中的嵌套表格時,發(fā)現(xiàn)官方文檔很多地方都不夠詳細。在過程中踩了不少坑,例如: 子表如何獲取父表的數(shù)據(jù)? 如何獲取子表的行索引? 如何讓子表的數(shù)據(jù)源來自父表該行的數(shù)據(jù)? 總之,最后還是磕磕絆絆做完了功能,于是第一時間把代碼整理

    2024年02月15日
    瀏覽(21)
  • SpringBoot + Ant Design Vue實現(xiàn)數(shù)據(jù)導(dǎo)出功能

    SpringBoot + Ant Design Vue實現(xiàn)數(shù)據(jù)導(dǎo)出功能

    以xlsx格式導(dǎo)出所選表格中的內(nèi)容 要求進行分級 設(shè)置表頭顏色。 首先我們需要添加一個用于到導(dǎo)出的按鈕上去,像這樣的: 至于它放哪里,是什么樣式可以根據(jù)自己的需求決定。 按鈕有了,下來我們開始實現(xiàn)這個按鈕的功能。 導(dǎo)出數(shù)據(jù)確定。 表格設(shè)置: 表頭添加以下代碼

    2024年02月10日
    瀏覽(27)
  • vue3 + Ant Design 實現(xiàn)雙表頭表格(橫向表頭+縱向表頭)

    vue3 + Ant Design 實現(xiàn)雙表頭表格(橫向表頭+縱向表頭)

    ?一、要實現(xiàn)的效果( 縱向固定表頭的表格,橫向表頭數(shù)量動態(tài)化 ) 二、這是后臺返回的數(shù)據(jù)格式(以企業(yè)為數(shù)組,每個企業(yè)里有個站點數(shù)組pointFactors) ? 三、代碼實現(xiàn)步驟 ? (1)定義縱向固定表頭 (2)動態(tài)生成橫向表頭( 從接口獲取數(shù)據(jù) ) ? (3)循環(huán)原始數(shù)據(jù),生

    2024年02月04日
    瀏覽(48)
  • Ant Design Vue實現(xiàn)表格雙擊編輯、添加新行、文字提示

    Ant Design Vue實現(xiàn)表格雙擊編輯、添加新行、文字提示

    早上剛上班,產(chǎn)品就朝我工位走了過來,一看大事不好,肯定又是來提需求的! 產(chǎn)品:做一個表格,要實現(xiàn)雙擊編輯的功能 我:做不了 產(chǎn)品:老板提的 我:好的,可以做 老板提的不能做也滴做?? 申明:項目基于Vue+Ant Design實現(xiàn) 想要實現(xiàn)雙擊編輯單元格,先開發(fā)一個簡單的

    2024年02月11日
    瀏覽(39)
  • ant-design-vue中upload上傳圖片、視頻實現(xiàn)預(yù)覽功能

    ant-design-vue中upload上傳圖片、視頻實現(xiàn)預(yù)覽功能

    有沒有小伙伴在使用ant-design-vue的upload組件時,發(fā)現(xiàn)api文檔在圖片預(yù)覽功能的介紹寥寥無幾,而且也沒提供視頻預(yù)覽的demo,在實際開發(fā)中碰到相應(yīng)的需求直撓頭~~~~,別急,下面來給大家分享一個我自己封裝的upload組件,符合需求可以直接在項目中放到組件目錄調(diào)用。 templat

    2024年02月12日
    瀏覽(23)
  • react ant-design實現(xiàn)導(dǎo)航菜單menu的路由設(shè)置/切換頁面

    react ant-design實現(xiàn)導(dǎo)航菜單menu的路由設(shè)置/切換頁面

    ant-design版本是5.1.1,路由版本是v6的 新版本的導(dǎo)航菜單路由設(shè)置與舊版的不太一樣,剛開始的時候甚至不知道該怎么寫 實現(xiàn)效果: 代碼: 首先,給導(dǎo)航菜單的menu添加點擊事件 修改item,通過設(shè)置點擊事件獲取點擊后的key值(key值即路由跳轉(zhuǎn)的頁面) 打印出來看看 獲取到的

    2024年02月12日
    瀏覽(22)
  • 【ant-design-vue】實現(xiàn)table的拖拽排序(拖拽行和伸縮列):

    【ant-design-vue】實現(xiàn)table的拖拽排序(拖拽行和伸縮列):

    1.效果: 拖拽前: 拖拽后: 2.實現(xiàn): 3.出現(xiàn)的問題: 4.初始拖拽版本: 5.相關(guān)知識:

    2024年02月12日
    瀏覽(22)
  • ant.design 組件庫中的 Tree 組件實現(xiàn)可搜索的樹: React+and+ts

    ant.design 組件庫中的 Tree 組件實現(xiàn)可搜索的樹: React+and+ts

    ant.design 組件庫中的 Tree 組件實現(xiàn)可搜索的樹,在這里我會詳細介紹每個方法,以及容易踩坑的點。 效果圖: 下面是要渲染在 Tree 上的的數(shù)據(jù),這是一個偽數(shù)據(jù),如果你在開發(fā)時使用,直接修改給對應(yīng)的變量名,賦值即可 這個方法是 Tree 組件提供的,用來篩選出要渲染的數(shù)

    2024年02月14日
    瀏覽(21)
  • 使用Axios中的onUploadProgress實現(xiàn)顯示文件上傳進度

    onUploadProgress 是 Axios 這個 JavaScript 庫中用于處理 HTTP 請求的一個配置選項之一。Axios 是一個基于 Promise 的 HTTP 客戶端,用于在瀏覽器和 Node.js 中進行 HTTP 請求。 onUploadProgress 允許指定一個回調(diào)函數(shù),在上傳進度發(fā)生變化時被調(diào)用。這個回調(diào)函數(shù)接收一個進度事件對象作為參數(shù)

    2024年02月10日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包