11-Vue+Axios获取远端数据并渲染

Vue+Axios获取远端数据并渲染

  • Vue项目中,和后台交互获取数据这块,我们通常使用的是axios库,它是基于promisehttp库,支持几乎所有主流浏览器(包括IE11)。
  • axios具有很多优秀的特性,例如 拦截请求和响应、取消请求、自动转换JSON、客户端防御XSRF等。
  • axiosCDN导入方式: <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue+Axios获取远端数据并渲染</title>
</head>
<body>
<div id="app">
<h2>Vue+Axios获取远端数据并渲染</h2>
<h5>数据源:https://randomuser.me/api/</h5>
<hr>
获取数据件数:<input type="text" v-model="resultCount">
<button @click="getData">提交</button>
<button @click="clear">清空</button>
<br><br>
<table border="1" width="600px">
<tr>
<th> 姓名 </th>
<th> 性别 </th>
<th> 年龄 </th>
<th> email </th>
</tr>
<!-- 循环遍历 数组对象 -->
<tr v-for="(user, index) in users" :key="user.email">
<td> {{ user.name.first }} {{ user.name.last }} </td>
<td> {{ user.gender }} </td>
<td> {{ user.dob.age }} </td>
<td> {{ user.email }} </td>
</tr>
</table>
<span style="color: red;" v-text="errMsg"></span>
</div>
</body>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script src="js/vue.js"></script>
<script type="text/javascript">
var vm = new Vue({
el: "#app",
data: {
apiUrl: "https://randomuser.me/api/",
resultCount: 5,
users: [],
errMsg: ""
},
methods: {
getData() {
// axios.get('https://randomuser.me/api/?results=5')
axios.get(this.apiUrl, {
params: {
results: this.resultCount
}
})
.then(response => {
this.users = response.data.results
})
.catch(() => {
this.errMsg = "现在系统繁忙,请稍后再试。。。"
})
},
clear() {
this.resultCount = 5
this.users = []
this.errMsg = ""
}
}
})
</script>
</html>

浏览器中的显示结果

PS:如有任何问题,欢迎在下面评论区留言,让我们共同进步,非常感谢!(^o^)v


11-Vue+Axios获取远端数据并渲染
https://liaoliaocode.xyz/article/2758/
作者
Brian.Gao
发布于
2022年4月15日
许可协议