【黑马】Vue全家桶-Vue基础:Vue综合案例(学习打卡03)
本文标题中的数字表示B站视频内容对应的分P数。
》综合案例(43~52)
补充知识(数组相关API)
- 变异方法(修改原有数据)
push() <!--数组元素的添加和去除--> pop() <!--数组元素的添加和去除--> shift() <!--数组元素的添加和去除--> unshift() <!--数组元素的添加和去除--> splice() <!--删除数组中指定元素--> sort() <!--实现排序--> reverse() <!--实现数组元素的反转-->
- 替换数组(生成新的数组)
filter() concat() slice()
举例:变异方法和替换数组:
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
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div id="app">
<div>
<span>
<input type="text" v-model='fname'>
<button @click='add'>添加</button>
<button @click='del'>删除</button>
<button @click='change'>替换</button>
</span>
</div>
<ul>
<li :key='index' v-for='(item,index) in list'>{{item}}</li>
</ul>
</div>
<script type="text/javascript" src="js/vue.js"></script>
<script type="text/javascript">
/*
Vue数组操作
1、变异方法:会影响数组的原始数据的变化。
2、替换数组:不会影响原始的数组数据,而是形成一个新的数组。
*/
var vm = new Vue({
el: '#app',
data: {
fname: '',
list: ['apple','orange','banana']
},
methods: {
add: function(){
this.list.push(this.fname);
},
del: function(){
this.list.pop();
},
change: function(){
this.list = this.list.slice(0,2);
// 因为.slice()会产生新的数组,而不是在原有数组上修改
// 所以要把变化后的数组赋值给原始数组,才有预想效果
}
}
});
</script>
</body>
</html>
补充知识(数组响应式变化)
- 修改响应式数据
1 | Vue.set(vm.items, indexOfItem, newValue) |
使用效果上来说,上面两种虽然写法不太一样,但作用是一样的,都是响应式变化数组内容。
举例:动态响应式数组处理:
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
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div id="app">
<ul>
<li v-for='item in list'>{{item}}</li>
</ul>
<div>
<div>{{info.name}}</div>
<div>{{info.age}}</div>
<div>{{info.gender}}</div>
</div>
</div>
<script type="text/javascript" src="js/vue.js"></script>
<script type="text/javascript">
/*
动态处理响应式数据
*/
var vm = new Vue({
el: '#app',
data: {
list: ['apple', 'orange', 'banana'],
info: {
name: 'lisi',
age: 12
}
},
});
// vm.list[1] = 'lemon';
// Vue.set(vm.list, 2, 'lemon');
vm.$set(vm.list, 1, 'lemon');
// vm.info.gender = 'male';
vm.$set(vm.info, 'gender', 'female');
</script>
</body>
</html>
1. 图书列表
- 实现静态列表效果
- 基于数据实现模板效果(用Vue语法重构渲染)
- 处理每行的操作按钮(
@click.prevent
禁止超链接标签的默认行为)
1 |
|
2. 添加图书
- 实现表单的静态效果
- 添加图书表单域数据绑定
- 添加按钮事件绑定
- 实现添加业务逻辑(表单信息封装到对象中,再添加到数组中)
1 |
|
3. 修改图书
- 修改信息填充到表单
- 修改后重新提交表单
- 重用添加和修改的方法
1 |
|
4. 删除图书
- 删除按钮绑定事件处理方法
- 实现删除业务逻辑
1 |
|
常用特性应用场景
- 过滤器(格式化日期)
- 自定义指令(获取表单焦点)
- 计算属性(统计图书数量)
- 侦听器(验证图书存在性)
- 生命周期(图书数据处理)
1 |
|
特别感谢:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 百里飞洋!
若存在错误或不当之处,还望兄台不吝赐教,期待与您交流!
评论