Vue之Axios的異步通信詳解
1.什么是Axios
Axios是一個(gè)開源的可以用在瀏覽器端和Node JS的異步通信框架, 她的主要作用就是實(shí)現(xiàn)AJAX異步通信,其功能特點(diǎn)如下:
- 從瀏覽器中創(chuàng)建
XMLHttpRequests - 從node.js創(chuàng)建http請(qǐng)求
- 支持Promise API[JS中鏈?zhǔn)骄幊蘛
- 攔截請(qǐng)求和響應(yīng)
- 轉(zhuǎn)換請(qǐng)求數(shù)據(jù)和響應(yīng)數(shù)據(jù)
- 取消請(qǐng)求
- 自動(dòng)轉(zhuǎn)換JSON數(shù)據(jù)
- 客戶端支持防御XSRF(跨站請(qǐng)求偽造)
GitHub:https://github.com/axios/axios
2、為什么要使用Axios
由于Vue.js是一個(gè)視圖層框架并且作者(尤雨溪) 嚴(yán)格準(zhǔn)守SoC(關(guān)注度分離原則)所以Vue.js并不包含AJAX的通信功能, 為了解決通信問題, 作者單獨(dú)開發(fā)了一個(gè)名為vue-resource的插件, 不過在進(jìn)入2.0版本以后停止了對(duì)該插件的維護(hù)并推薦了Axios框架。少用jQuery, 因?yàn)樗僮鱀om太頻繁!
3、第一個(gè)Axios應(yīng)用程序
咱們開發(fā)的接口大部分都是采用JSON格式, 可以先在項(xiàng)目里模擬一段JSON數(shù)據(jù), 數(shù)據(jù)內(nèi)容如下:創(chuàng)建一個(gè)名為data.json的文件并填入上面的內(nèi)容, 放在項(xiàng)目的根目錄下
{
"name": "狂神說Java",
"url": "https://blog.kuangstudy.com",
"page": 1,
"isNonProfit": true,
"address": {
"street": "含光門",
"city": "陜西西安",
"country": "中國(guó)"
},
"links": [
{
"name": "bilibili",
"url": "https://space.bilibili.com/95256449"
},
{
"name": "狂神說Java",
"url": "https://blog.kuangstudy.com"
},
{
"name": "百度",
"url": "https://www.baidu.com/"
}
]
}測(cè)試代碼
<!DOCTYPE html>
<html lang="en" xmlns:v-binf="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--v-cloak 解決閃爍問題-->
<style>
[v-cloak]{
display: none;
}
</style>
</head>
<body>
<div id="vue">
<div>地名:{{info.name}}</div>
<div>地址:{{info.address.country}}--{{info.address.city}}--{{info.address.street}}</div>
<div>鏈接:<a v-binf:href="info.url" target="_blank">{{info.url}}</a> </div>
</div>
<!--引入js文件-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script type="text/javascript">
var vm = new Vue({
el:"#vue",
//data:屬性:vm
data(){
return{
info:{
name:null,
address:{
country:null,
city:null,
street:null
},
url:null
}
}
},
mounted(){//鉤子函數(shù)
axios
.get('data.json')
.then(response=>(this.info=response.data));
}
});
</script>
</body>
</html>說明:
1.在這里使用了v-bind將a:href的屬性值與Vue實(shí)例中的數(shù)據(jù)進(jìn)行綁定
2.使用axios框架的get方法請(qǐng)求AJAX并自動(dòng)將數(shù)據(jù)封裝進(jìn)了Vue實(shí)例的數(shù)據(jù)對(duì)象中我們?cè)赿ata中
3.的數(shù)據(jù)結(jié)構(gòu)必須和Ajax響應(yīng)回來的數(shù)據(jù)格式匹配!
4、Vue的生命周期
官方文檔:https://cn.vuejs.org/v2/guide/instance.html#生命周期圖示
Vue實(shí)例有一個(gè)完整的生命周期,也就是從開始創(chuàng)建初女臺(tái)化數(shù)據(jù)、編譯模板、掛載DOM、渲染一更新一渲染、卸載等一系列過程,我們稱這是Vue的生命周期。通俗說就是Vue實(shí)例從創(chuàng)建到銷毀的過程,就是生命周期。
在Vue的整個(gè)生命周期中,它提供了一系列的事件,可以讓我們?cè)谑录|發(fā)時(shí)注冊(cè)JS方法,可以讓我們用自己注冊(cè)的JS方法控制整個(gè)大局,在這些事件響應(yīng)方法中的this直接指向的是Vue的實(shí)例。

總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
vue3配置router路由并實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)功能
這篇文章主要介紹了vue3配置router路由并實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn),本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04
關(guān)于vue中hash和history的區(qū)別與使用圖文詳解
vue-router中有hash模式和history模式,下面這篇文章主要給大家介紹了關(guān)于vue中hash和history的區(qū)別與使用的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03
解決Vue.js由于延時(shí)顯示了{(lán){message}}引用界面的問題
今天小編就為大家分享一篇解決Vue.js由于延時(shí)顯示了{(lán){message}}引用界面的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08
基于vue-cli3多頁(yè)面開發(fā)apicloud應(yīng)用的教程詳解
這篇文章主要介紹了基于vue-cli3多頁(yè)面開發(fā)apicloud應(yīng)用,本文采用vue-cli+APIcloud的方式寫解決以上痛點(diǎn),開發(fā)靈活,并且打包之后體積更小速度更快,需要的朋友可以參考下2019-06-06
基于ElementUI中Table嵌套實(shí)現(xiàn)多選的示例代碼
這篇文章主要介紹了基于ElementUI中Table嵌套實(shí)現(xiàn)多選的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
使用vis-timeline繪制甘特圖并實(shí)現(xiàn)時(shí)間軸的中文化(案例代碼)
這篇文章主要介紹了使用vis-timeline繪制甘特圖并實(shí)現(xiàn)時(shí)間軸的中文化(案例代碼),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02

