vue实现简单的列表展现、增加、删除、搜索

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="vue.js"></script>
</head>
<body>
    <!--容器-->
    <div id="app">
        <h1>添加</h1>
        <span>id:</span>
        <input type="text" v-model="id">
        <span>name:</span>
        <input type="text" v-model="name">
        <input type="button" @click="add" value="添加">
        搜索关键字:
        <input type="text" v-model="keywords">
<br><hr>
        <li v-for="i of search(keywords)">
            {{i.id}}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{i.name}}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <a href="" @click.prevent="del(i.id)">删除</a>
        </li>

    </div>

<script>
    // 创建一个vue实例
    var vm=new Vue({
        el:'#app',  // 绑定id为appid容器
        data:{
            id:"",
            name:"",
            keywords:"",
            list:[
                {id:1,name:"宝马"},
                {id:2,name:"奔驰"}
            ]
        },
        methods:{
            add(){
                var item={id:this.id,name:this.name};
                this.list.push(item);
                this.id="";
                this.name="";
            },
            del(id){
                _this=this;
                this.list.some(function (item,index) {
                    if(item.id==id){
                        _this.list.splice(index,1);
                        return true;
                    }
                })
            },
            search(keywords) { // 根据关键字,进行数据的搜索
                /* var newList = []
                this.list.forEach(item => {
                  if (item.name.indexOf(keywords) != -1) {
                    newList.push(item)
                  }
                })
                return newList */

                // 注意:  forEach   some   filter   findIndex   这些都属于数组的新方法,
                //  都会对数组中的每一项,进行遍历,执行相关的操作;
                return this.list.filter(item => {
                    // if(item.name.indexOf(keywords) != -1)

                    // 注意 : ES6中,为字符串提供了一个新方法,叫做  String.prototype.includes('要包含的字符串')
                    //  如果包含,则返回 true ,否则返回 false
                    //  contain
                    if (item.name.includes(keywords)) {
                    return item
                }
            });

                // return newList
            }
        }
    })
</script>
</body>
</html>

效果:

完整原文:http://blog.maptoface.com/post/95

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全职计算机毕业设计

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值