Vue发送ajax请求

  1. 1. ElementUI与Vue显示表格
  2. 2. 效果
  3. 3. axios异步请求

Vue发送异步ajax的请求,可以使用axios来实现

ElementUI与Vue显示表格

这里的表格摘自element官网,如下内容是直接写死在表格中的,未使用任何请求。

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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Table</title>
<!-- -->
<link rel="stylesheet" href="../plugins/elementui/index.css">
<script src="../js/vue.js"></script>
<script src="../plugins/elementui/index.js"></script>
</head>
<body>
<div id="app">
<!-- :data 双向绑定vue中的data的tableData,相当于v-for的会遍历集合(ElementUI底层封装了v-for)-->
<el-table :data="tableData" border style="width: 100%">
<!--lable:列名,prop:vue中名为data的实际的参数,下同-->
<el-table-column prop="date" label="日期" width="180">
</el-table-column>
<el-table-column prop="name" label="姓名" width="180">
</el-table-column>
<el-table-column prop="address" label="地址">
</el-table-column>
</el-table>
</div>

<script>
// Vue首字母大写
var vue = new Vue({
el: '#app',
data() {
return {
tableData: [{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
}]
}
},
//没有编译完的时候发送请求
created() {
},
//编译完的时候发送请求
mounted() {
},
methods: {
//定义方法的地方
}
});
</script>
</body>
</html>

效果

axios异步请求

Vue发送异步ajax的请求,这里可以使用axios来实现,如下是一个简单的使用的实例。

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
69
70
71
72
73
74
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Table</title>
<!-- 引入ElementUI css样式 -->
<link rel="stylesheet" href="../plugins/elementui/index.css">
<!-- 引入组件库 -->
<script src="../js/vue.js"></script>
<script src="../plugins/elementui/index.js"></script>
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script src="../js/axios-0.18.0.js"></script>
</head>
<body>
<div id="app">
<!-- :data 双向绑定vue中的data的dataList,相当于v-for的会遍历集合-->
<el-table :dataList="users" border style="width: 100%">
<!--lable:列名,prop:vue中名为data的实际的参数,下同-->
<el-table-column prop="date" label="日期" width="180">
</el-table-column>
<el-table-column prop="name" label="姓名" width="180">
</el-table-column>
<el-table-column prop="address" label="地址">
</el-table-column>
</el-table>
</div>

<script>
// Vue首字母大写
var vue = new Vue({
el: '#app',

/*
ECMAScript5的写法

data:{
user:[]
},
*/

// ECMAScript6的写法
// 存放数据的地方
data() {
return {users:[]};
},
//没有编译完的时候发送请求
created() {
// 查询所有
axios.get('/checkitem/findAll.do').then(res => {
if (res.data.flag) {
// 如果查询到(res.data.flag==true),给dataList赋值
this.dataList = res.data.data;
} else {
this.$message.error(res.data.message);
}
})
},
//编译完的时候发送请求
mounted() {
},
methods: {
//定义方法的地方
/*
html调用的方法,在方法中执行axios请求
add(){
axios.get().........
}
*/
}
});
</script>
</body>
</html>