您好,登錄后才能下訂單哦!
這篇文章主要介紹“vue項目如何使用axios封裝request請求”,在日常操作中,相信很多人在vue項目如何使用axios封裝request請求問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”vue項目如何使用axios封裝request請求”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
1.src 目錄中新建utils文件夾
2.utils文件中建立request.js文件
request.js文件的內容
<1> 導入axios
<2> 我們可以聲明一個新的常量axios 我們可以配置一些基礎 公共的路徑配置 比如說baseURL timeout請求失敗超時報錯 withcookies…之類的東西
<3> 設置請求攔截
新的常量axios service.攔截器.請求.使用===》 里頭有兩個參數 一個成功的回調函數 一個失敗的回調函數
<4> 設置響應攔截
<5> 導出 導出這個模塊
完整代碼:
import axios from 'axios' import { Notification } from 'element-ui' // 創建axios實例 const service = axios.create({ // baseURL: 'http://192.168.1.69:5000', baseURL: process.env.API_ROOT, timeout: 80000, // 請求超時時間 withCredentials: true, // crossDomain: true }) // request攔截器 service.interceptors.request.use( config => { if (getToken()) { config.headers['Authorization'] = getToken() // 讓每個請求攜帶自定義token 請根據實際情況自行修改 } var lang = localStorage.getItem('lang')//因為項目中使用到了i18n國際化語言配置,請根據實際情況自行修改 if (!lang) { lang = 'zh_CN' } config.headers['Accept-Language'] = lang.replace(/_/g, '-') config.headers['Content-Type'] = 'application/json' return config }, error => { Promise.reject(error) } ) // response 攔截器 service.interceptors.response.use( response => { return response.data }, error => { // 兼容blob下載出錯json提示 if (error.response.data instanceof Blob && error.response.data.type.toLowerCase().indexOf('json') !== -1) { const reader = new FileReader() reader.readAsText(error.response.data, 'utf-8') reader.onload = function (e) { const errorMsg = JSON.parse(reader.result).message Notification.error({ title: errorMsg, duration: 5000 }) } } else { let code = 0 try { code = error.response.data.status } catch (e) { if (error.toString().indexOf('Error: timeout') !== -1) { Notification.error({ title: '網絡請求超時', duration: 5000 }) return Promise.reject(error) } } if (code) { if (code === 401) { store.dispatch('LogOut').then(() => { // 用戶登錄界面提示 Cookies.set('point', 401) location.reload() }) } else if (code === 403) { router.push({ path: '/401' }) } else { const errorMsg = error.response.data.message if (errorMsg !== undefined) { Notification.error({ title: errorMsg, duration: 0 }) } } } else { Notification.error({ title: '接口請求失敗', duration: 5000 }) } } return Promise.reject(error) } ) export default service
1.先導入封裝好的新的axios
2.然后我們可以封裝一些接口函數 比如說 登錄的 注冊的 首頁的 分類的 輪播的 //但是要確認參數傳的是get還是post請求
tips://比如說以后我們要維護封裝好的接口 這樣封裝好后我們就不需要去組件里一個一個去找,直接來這個文件修改即可
//組件化開模塊化發或者開發 它們都有一個原則
//高聚合 低耦合
//高聚合就是 一個組件的業務一定要聚合在一起 一個組件的業務越集中越好
//低耦合就是 組件和組件之間的耦合度一定要低 意思就是兩個組件之間的牽連越少越好
<script>標簽中引入 import { getSetbrate,randomtest,autocalibrate,lightCheck,writeserial} from "@/api/mAdmin";
方法中調用
// 設置閾值 獲取閾值 onManualSend() { let data = { command: this.command, }; writeserial(data).then((res) => { this.manualText = res.msg; }); },
到此,關于“vue項目如何使用axios封裝request請求”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。