日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

axios vue 加载效果动画_vue+axios+element ui 实现全局loading加载示例

發布時間:2024/7/23 vue 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 axios vue 加载效果动画_vue+axios+element ui 实现全局loading加载示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實現全局loading加載

分析需求,我們只需要在請求發起的時候開始loading,響應結束的時候關閉loading,就這么簡單 對不對?

import axios from 'axios';

import { Message, Loading } from 'element-ui';

import Cookies from 'js-cookie';

import router from '@/router/index'

let loading //定義loading變量

function startLoading() { //使用Element loading-start 方法

loading = Loading.service({

lock: true,

text: '加載中……',

background: 'rgba(0, 0, 0, 0.7)'

})

}

function endLoading() { //使用Element loading-close 方法

loading.close()

}

//那么 showFullScreenLoading() tryHideFullScreenLoading() 要干的事兒就是將同一時刻的請求合并。

//聲明一個變量 needLoadingRequestCount,每次調用showFullScreenLoading方法 needLoadingRequestCount + 1。

//調用tryHideFullScreenLoading()方法,needLoadingRequestCount - 1。needLoadingRequestCount為 0 時,結束 loading。

let needLoadingRequestCount = 0

export function showFullScreenLoading() {

if (needLoadingRequestCount === 0) {

startLoading()

}

needLoadingRequestCount++

}

export function tryHideFullScreenLoading() {

if (needLoadingRequestCount <= 0) return

needLoadingRequestCount--

if (needLoadingRequestCount === 0) {

endLoading()

}

}

//http request 攔截器

axios.interceptors.request.use(

config => {

var token = ''

if(typeof Cookies.get('user') === 'undefined'){

//此時為空

}else {

token = JSON.parse(Cookies.get('user')).token

}//注意使用的時候需要引入cookie方法,推薦js-cookie

config.data = JSON.stringify(config.data);

config.headers = {

'Content-Type':'application/json'

}

if(token != ''){

config.headers.token = token;

}

showFullScreenLoading()

return config;

},

error => {

return Promise.reject(err);

}

);

//http response 攔截器

axios.interceptors.response.use(

response => {

//當返回信息為未登錄或者登錄失效的時候重定向為登錄頁面

if(response.data.code == 'W_100004' || response.data.message == '用戶未登錄或登錄超時,請登錄!'){

router.push({

path:"/",

querry:{redirect:router.currentRoute.fullPath}//從哪個頁面跳轉

})

}

tryHideFullScreenLoading()

return response;

},

error => {

return Promise.reject(error)

}

)

以上這篇vue+axios+element ui 實現全局loading加載示例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

總結

以上是生活随笔為你收集整理的axios vue 加载效果动画_vue+axios+element ui 实现全局loading加载示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。