一文了解axios和vue的整合操作
前言
前面學(xué)習(xí)了vue的本地應(yīng)用操作,本文將會學(xué)習(xí)Vue的網(wǎng)絡(luò)應(yīng)用,介紹axios并且學(xué)習(xí)axios和Vue的結(jié)合使用
一、axios是什么?
1.定義
Axios是一個基于promise 的 HTTP 庫,可以用在瀏覽器和 node.js中
2.原理
axios本質(zhì)上也是對原生XHR的封裝,只不過它是Promise的實現(xiàn)版本,符合最新的ES規(guī)范。
3、主要特點
1、從 node.js 創(chuàng)建 http 請求
2、支持 Promise API
3、攔截請求和響應(yīng)
4、轉(zhuǎn)換請求和響應(yīng)數(shù)據(jù)
5、取消請求
6、自動轉(zhuǎn)換JSON數(shù)據(jù)
7、客戶端支持防御XSRF要特點
8、從瀏覽器創(chuàng)建 XMLHttpRequests
二、axios的應(yīng)用
1、axios必須先導(dǎo)入才可以使用
2、使用get或Post方法即可發(fā)送對應(yīng)的請求
3、then方法中的回調(diào)函數(shù)會在請求成功或失敗時觸發(fā)
4、通過回調(diào)函數(shù)的形參可以獲取響應(yīng)內(nèi)容,或錯誤信息
代碼解析
1、axios通過get或者post發(fā)送請求
2、axios.get()中間填寫獲取的請求地址,后面跟上請求的參數(shù)使用?連接
3、.then()代表的是成功獲取到后,如何處理的事件和獲取失敗,該如何處理的事件
兩個事件中間用逗號隔開
<input type="button" value="get請求" class="get"> <input type="button" value="post請求" class="post"> <!--官網(wǎng)提供的axios在線地址--> <script src="https://unpkg.com/axios/dist/axios.min.js"></script> <script> /* 接口1:隨機笑話 請求地址:https://autumnfish.cn/api/joke/list 請求方法:get 請求參數(shù):num(笑話條數(shù),數(shù)字) 響應(yīng)內(nèi)容:隨機笑話 */ document.querySelector(".get").onclick=function (){ axios.get("https://autumnfish.cn/api/joke/list?num=3") .then(function (response){ console.log(response); },function (err){ console.log(err); }) } /* 接口2:用戶注冊 請求地址:https://autumnfish.cn/api/user/reg 請求方法:post 請求參數(shù):username(用戶名,字符串) 響應(yīng)內(nèi)容:注冊成功或失敗 */ document.querySelector(".post").onclick=function(){ axios.post("https://autumnfish.cn/api/user/reg",{username:"李奕赫"}).then(function (response){ console.log(response); },function (err){ console.log(err); }) } </script>
效果展示:
按下按鈕后,會在控制臺里,將回應(yīng)值全部打印出來
三、axios+vue的應(yīng)用
1、axios回調(diào)函數(shù)中的this已經(jīng)改變,無法訪問到data中數(shù)據(jù)
2、把this保存起來,回調(diào)函數(shù)中直接使用保存的this即可‘
3、和本地應(yīng)用的最大區(qū)別就是改變了數(shù)據(jù)來源
代碼展示:
1、這次將axios和vue相結(jié)合,改變了數(shù)據(jù)來源
2、可以將axios在網(wǎng)絡(luò)上獲取的信息,通過vue展示出來
3、axios的操作跟上面沒區(qū)別,就是放在vue的一個事件中。
4、因為返回的回應(yīng)值很多,我們僅僅只想找到我們想要的。我們就可以直接寫。
例如:response.data 我們可以直接下面套著寫
<div id="app"> <input type="button" value="獲取笑話" @click="getJoke"> <p>{{joke}}</p> </div> <!-- 開發(fā)環(huán)境版本,包含了有幫助的命令行警告 --> <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script> <!--官網(wǎng)提供的axios在線地址--> <script src="https://unpkg.com/axios/dist/axios.min.js"></script> <script> /* 接口1:隨機笑話 請求地址:https://autumnfish.cn/api/joke/list 請求方法:get 請求參數(shù):num(笑話條數(shù),數(shù)字) 響應(yīng)內(nèi)容:隨機笑話 */ var app=new Vue({ el:"#app", data:{ joke:"很好笑的笑話" }, methods:{ getJoke:function (){ var that=this; axios.get("https://autumnfish.cn/api/joke").then(function (response){ console.log(response.data) that.joke=response.data; /*這里不能使用this.joke,因為對象已經(jīng)發(fā)生改變*/ },function (err){ }) } }, }) </script>
效果展示:
1、當(dāng)按下按鈕時,就觸發(fā)事件。
2、因為vue是基于數(shù)據(jù)開發(fā),數(shù)據(jù)發(fā)生改變,頁面上的顯示也會隨之改變
3、當(dāng)觸發(fā)事件后,我們將axios獲取的數(shù)據(jù)賦值給vue中的變量,所以當(dāng)變量改變,頁面上的笑話也會改變。
總結(jié)
本文介紹了axios和vue的簡單整合實驗,大家可以親自實踐操作一下?。?/p>
到此這篇關(guān)于axios和vue整合操作的文章就介紹到這了,更多相關(guān)axios vue整合操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue3接口數(shù)據(jù)賦值對象,渲染報錯問題及解決
這篇文章主要介紹了vue3接口數(shù)據(jù)賦值對象,渲染報錯問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09ArcGis?API?for?js在vue.js中的使用示例詳解
這篇文章主要為大家介紹了ArcGis?API?for?js在vue.js中的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08關(guān)于vue-resource報錯450的解決方案
本篇文章主要介紹關(guān)于vue-resource報錯450的解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07Vue異步更新DOM及$nextTick執(zhí)行機制解讀
這篇文章主要介紹了Vue異步更新DOM及$nextTick執(zhí)行機制解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03