0
点赞
收藏
分享

微信扫一扫

Vue系列教程(12)- 异步通信(Axios)

祈澈菇凉 02-04 11:00 阅读 7



文章目录


  • ​​1. 引言​​
  • ​​2. Axios​​

  • ​​2.1 什么是Axios​​
  • ​​2.2 Axios案例​​

  • ​​2.2.1 创建模拟数据​​
  • ​​2.2.2 代码实现​​


  • ​​3. 小结​​


1. 引言

通过前面的章节,我们已经学会了​​vue​​的组件,有兴趣的同学可以参阅下:

本文主要讲解的是​​Vue​​的异步通信框架​​Axios​​,学习之前,先贴上一张Vue的生命周期图(可以类比于​​Android​​里的​​Activity​​生命周期)。

Vue系列教程(12)- 异步通信(Axios)_数据

2. Axios

2.1 什么是Axios

​​Axios​​​是一个开源的可以用在浏览器端和​​node.JS​​​的异步通信框架, 主要作用就是实现​​ajax​​异步通信,其功能特点如下:


  • 从浏览器中创建​​XMLHttpRequests​
  • 从​​node.js​​​创建​​http​​请求
  • 支持​​Promise API[JS​​中链式编程]
  • 拦截请求和响应
  • 转换请求数据和响应数据
  • 取消请求
  • 自动转换​​JSON​​数据
  • 客户端支持防御​​XSRF​​(跨站请求伪造)

2.2 Axios案例

2.2.1 创建模拟数据

首先创建模拟从网络返回的​​json​​​数据,​​data.json​​内容如下:

{
"name": "码云",
"url": "https://gitee.com/",
"page": 1,
"isNonProfit": true,
"address": {
"street": "天河",
"city": "广州",
"country": "中国"
},
"links": [
{
"name": "Axios中文文档",
"url": "http://www.axios-js.com/zh-cn/docs/"
},
{
"name": "百度",
"url": "https://www.baidu.com/"
}
]
}

Vue系列教程(12)- 异步通信(Axios)_ios_02

2.2.2 代码实现

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<title>Title</title>
<!--引入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>
<!--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>
<a v-bind:href="info.url" >点击跳转{{info.url}}</a>
</div>

<script type="text/javascript">
var vm = new Vue({
el: "#vue",
//data:属性:vm
data() {
return {
// 请求的返回参数的格式,必须和Json字符串一样
info: {
name: null,
address: {
country: null,
city: null,
street: null
},
url: null
}
}
},
mounted() {//钩子函数
axios.get('data.json').then(response => (this.info = response.data));
}
});
</script>
</body>

</html>

运行结果如下:

Vue系列教程(12)- 异步通信(Axios)_html_03

当然如果如下报错,是浏览器设置的问题,解决方案​​​​

Vue系列教程(12)- 异步通信(Axios)_html_04

3. 小结


  • 在这里使用了​​v-bind​​​将​​a:href​​​的属性值与​​Vue​​实例中的数据进行绑定
  • 使用​​axios​​​框架的​​get​​​方法请求​​AJAX​​​并自动将数据封装进了​​Vue​​实例的数据对象中
  • 我们在​​data​​中的数据结构必须和​​Ajax​​响应回来的数据格式匹配


举报

相关推荐

0 条评论