Axios 是一個基于 promise 的 HTTP 庫,可以用在瀏覽器和 node.js 中。在vue項目之中使用axios是一個非常明智的選擇,因為vue官方已經宣稱不再維護vue-resource,并且推薦使用axios.
1 為什么選擇axios?
使用axios可以統一做請求-響應攔截,例如響應時我們將響應信息攔截起來,判斷狀態碼,從而彈出報錯信息
設定請求超時,例如3000ms未響應則停止請求
基于promise,可以很方便地使用then或者catch來處理請求
自動轉換json數據
2 如何使用?
可以使用以下方式
1. npm install axios --save 2. bower install axios --save 3.
3 封裝http請求
官網給定的實例:
axios.get("/user?ID=12345") .then(function(response){ console.log(response); }) .catch(function(err){ console.log(err); });
在此基礎上我們應該再次封裝http中的post get put delete方法,在具體頁面只需要調用接口函數以及傳入params即可,其余例如url,header之類的我們應該進行封裝。
例如在index.vue之中使用一個函數來實現通過id來獲取對應的用戶信息,返回結果在then方法的result之中
API.getUserInfo({id:"01"}).then((result)=>{})
4 實現思路
新建一個文件,構建一個axios對象實例 例如axios.js
import axios from "axios"; import router from "../router"; // 創建axios實例 const service = axios.create({ timeout: 30000 // 請求超時時間 }) // 添加request攔截器 service.interceptors.request.use(config => { return config }, error => { Promise.reject(error) }) // 添加respone攔截器 service.interceptors.response.use( response => { let res={}; res.status=response.status res.data=response.data; return res; }, error => { if(error.response && error.response.status == 404){ router.push("/blank.vue") } return Promise.reject(error.response) } ) export function get(url, params = {}) { params.t = new Date().getTime(); //get方法加一個時間參數,解決ie下可能緩存問題. return service({ url: url, method: "get", headers: { }, params }) } //封裝post請求 export function post(url, data = {}) { //默認配置 let sendObject={ url: url, method: "post", headers: { "Content-Type":"application/json;charset=UTF-8" }, data:data }; sendObject.data=JSON.stringify(data); return service(sendObject) } //封裝put方法 (resfulAPI常用) export function put(url,data = {}){ return service({ url: url, method: "put", headers: { "Content-Type":"application/json;charset=UTF-8" }, data:JSON.stringify(data) }) } //刪除方法(resfulAPI常用) export function deletes(url){ return service({ url: url, method: "delete", headers: {} }) } //不要忘記export export { service }
上述代碼主要實現一個基本的axios封裝,請求成功時獲取響應對象,我們主需要獲取幾個有用的信息即可,例如狀態碼,數據即可,同時處理錯誤,例如返回404我們跳轉到一個新界面
封裝接口函數
新建文件,例如api.js
import {get, post,deletes,put} from "./axios.js" ;//導入axios實例文件中方法 let bsae_api = process.env.BASE_API ? "./"+process.env.BASE_API :".." //獲取項目api請求地址 //根據id獲取用戶信息 export const getUserInfoById=(id)=>{ return get(`${bsae_api}/web/user/${id}`); //resfulapi風格 }
具體頁面使用 index.vue
import API from "@/utils/api" getUserInfo(){ API.getUserInfoById("01).then((result)=>{ }).catch((error)=>{ }) }
以上就是一些axios封裝的基本介紹
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/108150.html
摘要:今天松哥就帶大家來看看的使用。此時啟動前端項目,就可以順利發送網絡請求了。松哥將自己封裝的網絡請求庫已經放在上,歡迎大家參考。前端網絡訪問,主流方案就是 Ajax,Vue 也不例外,在 Vue2.0 之前,網絡訪問較多的采用 vue-resources,Vue2.0 之后,官方不再建議使用 vue-resources ,這個項目本身也停止維護,目前建議使用的方案是 axios。今天松哥就帶大...
摘要:請求錯誤請求代碼封裝與基本一致,只是將換成即可。關于的使用是個能把組件的共享狀態抽取出來,當做一個全局單例模式進行管理。首先確保你的已經安裝,運行來安裝。 項目地址:https://huangxizhou.com/project/iMap 技術棧 Vue.js Vuex Axios Webpack Leancloud(express) Echarts Electron(electr...
摘要:描述基于適配方案封裝,構建手機端模板腳手架幫你做好的配置有多環境開發封裝適配方案生產環境優化首屏加速低版本瀏覽器兼容環境發布腳本可以上手直接寫代碼多環境開發之前寫過一個多環境的方案,是基于的多環境配置方案傳送門最近新的項目采用了開始了 描述 基于vue-cli3.0+webpack 4+vant ui + sass+ rem適配方案+axios封裝,構建手機端模板腳手架 幫你做好的配置...
摘要:開發一個完整博客流程前言前段時間剛把自己的個人網站寫完,于是這段時間因為事情不是太多,便整理了一下,寫了個簡易版的博客系統服務端用的是框架進行開發技術棧目錄結構講解的配置文件放置代碼文件項目參數配置的文件日志打印文件項目依賴模塊 Vue + Node + Mongodb 開發一個完整博客流程 前言 前段時間剛把自己的個人網站寫完, 于是這段時間因為事情不是太多,便整理了一下,寫了個簡易...
閱讀 2328·2021-11-22 14:56
閱讀 1460·2021-09-24 09:47
閱讀 904·2019-08-26 18:37
閱讀 2818·2019-08-26 12:10
閱讀 1522·2019-08-26 11:55
閱讀 3139·2019-08-23 18:07
閱讀 2294·2019-08-23 14:08
閱讀 604·2019-08-23 12:12