欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vux+Axios攔截器增加loading的問題及實現(xiàn)方法

 更新時間:2018年11月08日 14:05:39   作者:茶樹蝦  
這篇文章主要介紹了Vux+Axios攔截器增加loading的問題及實現(xiàn)方法,文中通過實例代碼介紹了vue中使用axios的相關知識,需要的朋友可以參考下

很多時候,我們在頁面使用Ajax刷新時候,會希望它出現(xiàn)loading的圖標,讓用戶體驗更好一些。那么如果我們每次在Axios里面進行請求,都要顯示loading圖標的話,那么沒有一個全局的方法的話,勢必會造成代碼冗余的問題。有什么方法可以實現(xiàn)這個方法呢?

這里,我們就要用到Axios的請求攔截器與相應攔截器了

首先,我們在請求攔截器里面增加一個VUX的loading組件

axios.interceptors.request.use(
config => {
//請求攔截器,調用loading插件
// 顯示loading
// 判斷是否重復提交請求,也就是loading是否還存在,如果存在則不顯示新的loading
let isShow = window.app.$vux.loading.isVisible()
if(!isShow&&config.showLoading){
  window.app.$vux.loading.show({
  text: 'Loading'
  })
}
config.data = JSON.stringify(config.data);
config.headers = {
  'Content-Type': 'application/json',
}
return config;
},
error => {
return Promise.reject(err);
}
);

整個數(shù)據(jù)里面,我們看到了里面有一個參數(shù)是$vux.loading.isVisible()這個。這個是vux自帶的一個loading狀態(tài)顯示的參數(shù)。如果loading正在顯示的話,它會是true,否則的話就顯示false

因為我們不希望同時有多個請求的時候,出現(xiàn)多個loading狀態(tài),這樣的話用戶看起來會很迷茫,所以我們在調用的時候,先判斷一下這個狀態(tài)。

然后在響應攔截器里面關掉它就好了

下面通過實例代碼介紹下vue中使用axios

1.安裝axios

npm:

$ npm install axios -S

cdn:

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

2.配置axios

在項目中新建api/index.js文件,用以配置axios

api/index.js

import axios from 'axios';
let http = axios.create({
 baseURL: 'http://localhost:8080/',
 withCredentials: true,
 headers: {
  'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
 },
 transformRequest: [function (data) {
  let newData = '';
  for (let k in data) {
   if (data.hasOwnProperty(k) === true) {
    newData += encodeURIComponent(k) + '=' + encodeURIComponent(data[k]) + '&';
   }
  }
  return newData;
 }]
});
function apiAxios(method, url, params, response) {
 http({
  method: method,
  url: url,
  data: method === 'POST' || method === 'PUT' ? params : null,
  params: method === 'GET' || method === 'DELETE' ? params : null,
 }).then(function (res) {
  response(res);
 }).catch(function (err) {
  response(err);
 })
}
export default {
 get: function (url, params, response) {
  return apiAxios('GET', url, params, response)
 },
 post: function (url, params, response) {
  return apiAxios('POST', url, params, response)
 },
 put: function (url, params, response) {
  return apiAxios('PUT', url, params, response)
 },
 delete: function (url, params, response) {
  return apiAxios('DELETE', url, params, response)
 }
}

這里的配置了POST、GET、PUT、DELETE方法。并且自動將JSON格式數(shù)據(jù)轉為URL拼接的方式

同時配置了跨域,不需要的話將withCredentials設置為false即可

并且設置了默認頭部地址為:http://localhost:8080/,這樣調用的時候只需寫訪問方法即可

3.使用axios

注:PUT請求默認會發(fā)送兩次請求,第一次預檢請求不含參數(shù),所以后端不能對PUT請求地址做參數(shù)限制

首先在main.js中引入方法

import Api from './api/index.js';
Vue.prototype.$api = Api;

然后在需要的地方調用即可

this.$api.post('user/login.do(地址)', {
  "參數(shù)名": "參數(shù)值"
}, response => {
   if (response.status >= 200 && response.status < 300) {
    console.log(response.data);\\請求成功,response為成功信息參數(shù)
   } else {
    console.log(response.message);\\請求失敗,response為失敗信息
   }
});

總結

以上所述是小編給大家介紹的Vux+Axios攔截器增加loading的問題及實現(xiàn)方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

  • vue3.0 項目搭建和使用流程

    vue3.0 項目搭建和使用流程

    這篇文章主要介紹了vue3.0 項目搭建和使用流程,幫助大家更好的理解和學習使用vue框架,感興趣的朋友可以了解下
    2021-03-03
  • vue開發(fā)chrome插件,實現(xiàn)獲取界面數(shù)據(jù)和保存到數(shù)據(jù)庫功能

    vue開發(fā)chrome插件,實現(xiàn)獲取界面數(shù)據(jù)和保存到數(shù)據(jù)庫功能

    這篇文章主要介紹了vue開發(fā)chrome插件,實現(xiàn)獲取界面數(shù)據(jù)和保存到數(shù)據(jù)庫功能的示例,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下
    2020-12-12
  • vue部署包可配置后臺接口地址的方法

    vue部署包可配置后臺接口地址的方法

    這篇文章主要介紹了vue部署包可配置后臺接口地址的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • Vue封裝DateRangePicker組件流程詳細介紹

    Vue封裝DateRangePicker組件流程詳細介紹

    在后端管理項目中使用vue來進行前端項目的開發(fā),但我們都知道Vue實際上無法監(jiān)聽由第三方插件所引起的數(shù)據(jù)變化。也無法獲得JQuery這樣的js框架對元素值的修改的。而日期控件daterangepicker又基于JQuery來實現(xiàn)的
    2022-11-11
  • vue實現(xiàn)簡單的購物車小案例

    vue實現(xiàn)簡單的購物車小案例

    這篇文章主要為大家詳細介紹了vue實現(xiàn)簡單的購物車小案例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • vue2.6.10+vite2開啟template模板動態(tài)編譯的過程

    vue2.6.10+vite2開啟template模板動態(tài)編譯的過程

    這篇文章主要介紹了vue2.6.10+vite2開啟template模板動態(tài)編譯,本文結合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • 使用Vue+ElementUI動態(tài)生成面包屑導航教程

    使用Vue+ElementUI動態(tài)生成面包屑導航教程

    Vue和ElementUI都是非常流行的前端開發(fā)框架,它們可以讓我們更加便捷地開發(fā)前端應用,下面這篇文章主要給大家介紹了關于使用Vue+ElementUI動態(tài)生成面包屑導航的相關資料,需要的朋友可以參考下
    2023-05-05
  • vue 1.0 結合animate.css定義動畫效果

    vue 1.0 結合animate.css定義動畫效果

    本文分步驟給大家介紹了Vue 1.0自定義動畫效果,vue1.0代碼結合animate.css定義動畫,頁面一定要引入animate.cdd,具體實例代碼大家參考下本文
    2018-07-07
  • Vue如何獲取數(shù)據(jù)列表展示

    Vue如何獲取數(shù)據(jù)列表展示

    這篇文章主要為大家詳細介紹了Vue如何獲取數(shù)據(jù)列表展示,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • 一文搞懂Vue3中toRef和toRefs的區(qū)別

    一文搞懂Vue3中toRef和toRefs的區(qū)別

    toRef 和 toRefs都是Vue3 中的響應式轉換工具函數(shù),換句話說,toRef 和 toRefs 就是用來創(chuàng)建響應式的引用的,主要用來取出響應式對象里的屬性,或者解構響應式對象,本文小編就來帶大家搞清楚Vue3中toRef和toRefs的區(qū)別,需要的朋友可以參考下
    2023-09-09

最新評論