Vue中的增加和删除数据

6

Vue以数据作为驱动,所以我们不需要去关注页面是怎么样的,而只需要去维护数据接下来我们就来看一下在Vue中是如何实现数据的增加和减少的。 数据的增加 123456789101112…

Vue以数据作为驱动,所以我们不需要去关注页面是怎么样的,而只需要去维护数据接下来我们就来看一下在Vue中是如何实现数据的增加和减少的。

数据的增加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
methods: {
            add(ev) {
                console.log(ev);
                if (ev.keyCode === 13) {
                    this.list.push({
                        title: this.val
                    })
                };
                this.val = '';
            }
/* 方法二
add(ev){
if (ev.keyCode === 13) {
    this.list.push({
       title:ev.target.value
    })
};

*/

}

vue中没有实参有形参 那么那个参数就是event对象 event对象也可以通过传入$event去获取

数据的删除

1
2
3
4
            del(index) {
                console.log(index);
                this.list.splice(index, 1)
            }

只需要通过当前元素传入索引,使用splice删除即可

完整源码如下

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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <title>Document</title>
    <style type="text/css">
        .value {
            width: 500px;
            height: 50px;
        }

        span {
            display: inline-block;
            width: 300px;
            height: 50px;
            border: 1px solid black;
            line-height: 50px;
            text-align: center;
        }

        .rad {
            width: 50px;
            height: 50px;
        }

        .color {
            color: #ccc;
            background: #f1f1f1;
            font-weight: 700;
            font-size: 20px;
        }
    </style>
</head>
<script src="https://cdn.bootcss.com/vue/2.5.17-beta.0/vue.min.js"></script>

<body>
    <div id="app">
        <h2>添加任务</h2>
        <input type="text" name="" class="value" @keyup.13="add" v-model="val">
        <div>
            <span v-show="list.length">{{list.length}}个任务未完成</span>
            <span v-show="!list.length">没有任务</span>
            <span>所有任务</span>
            <span>未完成的任务</span>
            <span>完成的任务</span>
            <ul>
                <li v-for="item,index in list">
                    <input type="checkbox" name="" v-model="item.isCheckbox">
                    <i :class="{color:item.isCheckbox}">{{item.title}}</i>
                    <span @click="del(index)">删除</span>
                </li>
            </ul>
        </div>


    </div>

</body>

</html>

<script type="text/javascript">
    //创建对象
    var list = [{
            title: "打豆豆",
            isCheckbox: false
        },
        {
            title: "打豆豆",
            isCheckbox: true
        }
    ];
    new Vue({
        el: "#app",
        data: {
            list: list,
            val: ""
        },
        methods: {
            add(ev) {
                console.log(ev);
                if (ev.keyCode === 13) {
                    this.list.push({
                        title: this.val
                    })
                };
                this.val = '';
            },
            del(index) {
                console.log(index);
                this.list.splice(index, 1)
            }
        }
    })


    /*

    方法一
            add(ev){
                if (ev.keyCode === 13) {
                    this.list.push({
                       title:ev.target.value
                    })
                };


    注意:
    vue中没有实参有形参 那么那个参数就是event对象
    event对象也可以通过传入$event去获取

    todo表示传入的就是该数据,然后通过indexOf进行查找
            del(todo){
                var index = this.list.indexOf(todo);
                this.splice(index,1);
            }

    这里面所实现的push等功能,只是在外表上改写了,不是原生的方法

     */

</script>

作者: huanggr

为您推荐

7

发表评论

电子邮件地址不会被公开。 必填项已用*标注