Vue之Axios的異步通信詳解
1.什么是Axios
Axios是一個開源的可以用在瀏覽器端和Node JS的異步通信框架, 她的主要作用就是實現(xiàn)AJAX異步通信,其功能特點如下:
- 從瀏覽器中創(chuàng)建
XMLHttpRequests - 從node.js創(chuàng)建http請求
- 支持Promise API[JS中鏈式編程]
- 攔截請求和響應
- 轉(zhuǎn)換請求數(shù)據(jù)和響應數(shù)據(jù)
- 取消請求
- 自動轉(zhuǎn)換JSON數(shù)據(jù)
- 客戶端支持防御XSRF(跨站請求偽造)
GitHub:https://github.com/axios/axios
2、為什么要使用Axios
由于Vue.js是一個視圖層框架并且作者(尤雨溪) 嚴格準守SoC(關(guān)注度分離原則)所以Vue.js并不包含AJAX的通信功能, 為了解決通信問題, 作者單獨開發(fā)了一個名為vue-resource的插件, 不過在進入2.0版本以后停止了對該插件的維護并推薦了Axios框架。少用jQuery, 因為它操作Dom太頻繁!
3、第一個Axios應用程序
咱們開發(fā)的接口大部分都是采用JSON格式, 可以先在項目里模擬一段JSON數(shù)據(jù), 數(shù)據(jù)內(nèi)容如下:創(chuàng)建一個名為data.json的文件并填入上面的內(nèi)容, 放在項目的根目錄下
{
"name": "狂神說Java",
"url": "https://blog.kuangstudy.com",
"page": 1,
"isNonProfit": true,
"address": {
"street": "含光門",
"city": "陜西西安",
"country": "中國"
},
"links": [
{
"name": "bilibili",
"url": "https://space.bilibili.com/95256449"
},
{
"name": "狂神說Java",
"url": "https://blog.kuangstudy.com"
},
{
"name": "百度",
"url": "https://www.baidu.com/"
}
]
}測試代碼
<!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ù)據(jù)進行綁定
2.使用axios框架的get方法請求AJAX并自動將數(shù)據(jù)封裝進了Vue實例的數(shù)據(jù)對象中我們在data中
3.的數(shù)據(jù)結(jié)構(gòu)必須和Ajax響應回來的數(shù)據(jù)格式匹配!
4、Vue的生命周期
官方文檔:https://cn.vuejs.org/v2/guide/instance.html#生命周期圖示
Vue實例有一個完整的生命周期,也就是從開始創(chuàng)建初女臺化數(shù)據(jù)、編譯模板、掛載DOM、渲染一更新一渲染、卸載等一系列過程,我們稱這是Vue的生命周期。通俗說就是Vue實例從創(chuàng)建到銷毀的過程,就是生命周期。
在Vue的整個生命周期中,它提供了一系列的事件,可以讓我們在事件觸發(fā)時注冊JS方法,可以讓我們用自己注冊的JS方法控制整個大局,在這些事件響應方法中的this直接指向的是Vue的實例。

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

