vue3學(xué)習(xí)筆記簡單封裝axios示例實現(xiàn)
簡介
axios是一個基于promise的網(wǎng)絡(luò)請求庫,管理后臺使用的場景通常 獲取后端api數(shù)據(jù),然后交給頁面渲染
還是在前面的示例項目上操作,安裝axios最新0.27.2版本
cd HELLO-WORLD npm install axios
openapi
在網(wǎng)上找到一個開放的openapi地址,免費(fèi)且無需認(rèn)證就可以使用
方便開發(fā)時模擬接口數(shù)據(jù),但不能使用在生產(chǎn)環(huán)境中
該openapi返回json數(shù)據(jù),比較符合我們的需求, 這里直接寫死到axios配置中
基本配置
axios配置項較多,這里只配置基本功能
在src目錄下創(chuàng)建utils文件夾,然后創(chuàng)建request.js文件
import axios from 'axios' //自動加在url前面 axios.defaults.baseURL = 'https://api.apiopen.top' //超時時間 axios.defaults.timeout = 5000 //跨域憑證 axios.defaults.withCredentials = false //響應(yīng)和請求 攔截器配置 export default axios
攔截器
axios攔截器分為 請求攔截和響應(yīng)攔截
請求攔截器可以在請求時設(shè)置token,header等等
響應(yīng)攔截器可以在收到數(shù)據(jù)后進(jìn)行邏輯判斷
請求攔截器配置
axios.interceptors.request.use(config => { console.log(config) return config }, error => { Promise.reject(error) })
響應(yīng)攔截器配置
axios.interceptors.response.use(res => { if (typeof res.data !== 'object') { ElMessage.error('返回數(shù)據(jù)不是對象!') return Promise.reject(res) } if (res.data.code !== 200 ){ ElMessage.error('返回碼不等于200') } return res.data }, error => { ElMessage.error('網(wǎng)絡(luò)異常') Promise.reject(error) })
api請求
在src目錄創(chuàng)建api文件夾,在api目錄中創(chuàng)建openapi.js 文件
創(chuàng)建一個getImages方法來 獲取 openapi的圖片數(shù)據(jù)
該方法指定請求get方法,傳入url和參數(shù)
import request from '../utils/request' export function getImages(params) { return request.get('/api/getImages', { params }) }
數(shù)據(jù)渲染
在components目錄創(chuàng)建一個table.vue的組件,路由配置見前一章
引入openapi,因為是js組件,不需要在vue頁面顯示聲明,直接使用
在頁面創(chuàng)建時調(diào)用請求數(shù)據(jù)方法,頁面加載完成既可在頁面上看到數(shù)據(jù)
<template> <div> <div> <p>this is imagesdata: {{ imagesData }}</p> </div> </div> </template> <script> import { getImages } from '@/api/openapi' export default { name: 'Table', data() { return { imagesData: null, queryData: { page: 0, size: 10, } } }, created() { this.fetchData(); }, methods: { fetchData() { getImages(this.queryData).then( (res) => { this.imagesData = res.result }).finally( () => { console.log(this.imagesData) }) } } } </script>
效果如下
結(jié)語: 簡單的axios封裝就完成了,以上就是vue3學(xué)習(xí)筆記簡單封裝axios示例實現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于vue3封裝axios的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
vue3組合API中setup、 ref、reactive的使用大全
本文給大家介紹vue3組合API中setup、 ref、reactive的用法,初步了解reactive的使用及具體用法,通過示例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-06-06Vue3+Element+Ts實現(xiàn)表單的基礎(chǔ)搜索重置等功能
本文主要介紹了Vue3+Element+Ts實現(xiàn)表單的基礎(chǔ)搜索重置等功能,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12Vue實現(xiàn)網(wǎng)頁轉(zhuǎn)PDF方法流程詳解
在日常的工作中,有時候會碰到需要將某個網(wǎng)址網(wǎng)頁保存成為pdf的情況,這篇文章主要介紹了用Vue實現(xiàn)網(wǎng)頁轉(zhuǎn)PDF的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Vue-Router基礎(chǔ)學(xué)習(xí)筆記(小結(jié))
這篇文章主要介紹了Vue-Router基礎(chǔ)學(xué)習(xí)筆記(小結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10elementUI+Springboot實現(xiàn)導(dǎo)出excel功能的全過程
這篇文章主要介紹了elementUI+Springboot實現(xiàn)導(dǎo)出excel功能,現(xiàn)在也對這個導(dǎo)出功能進(jìn)行一個匯總整理寫出來,結(jié)合實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09