前端应用_Vue_ 介绍三种方法删除商品列表里记录

上一节 我们只是能添加 记录, 那如何删除呢, 一共有两个方法

一个是利用 数组的 some() 方法, 一个是 findIndex 方法。

总结下思路 ,然后写代码 ,

第一 先确认 ,删除记录的id
第二 在删除记录的 button, 绑定一个删除的方法,并把id 当作参数进去。
第三 写删除方法, 删除方法 首先根据 传入的id 找到数组对象的 index
第四 找到index之后 调用 splice 方法删除 记录,然后返回true。

按照这个步骤一步步的来,不要急。

第一 和第二如下

<td style="color: #0e9aef"><a href="#" @click.prevent="del(item.id)">删除</a></td>

要注意 我们一定要时殷弘 prevent 阻断他的默认行为, 否则这个click 事件 是不能用的。我们把 id 当作参数。

第三 和第四 步骤如下:

 del(id){
                        this.list.some((item,index)=>{ if(item.id == id){
                            this.list.splice(index,1);
                            return true;

第二种方法 用filter , filter 的意思 是 符合的返回, 不符合的 不返回。
实际我们也可以用filter 进行写这个方法更简单点,如下:

 del(id){
                        this.list=this.list.filter((item,index)=>{ if(item.id != id){
                            return true;
                        } 
                       )
                    }
                }

第三种的写法, 用findIndex 直接返回一个index 值,然后调用 splice 方法。

写法如下:

   del(id){
                        var index=this.list.findIndex((item)=>{ if(item.id == id){
                            return true;
                     
                        }
                        }
                       
                        )
                        this.list.splice(index,1)
                      
                    }

也能达到效果,

全部的代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
     <link href="http://cdn.bootcss.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet" >

   <link href="https://cdn.bootcss.com/flat-ui/2.3.0/css/flat-ui.min.css" rel="stylesheet">
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">


    </script>
</head>
<body>
<div id="pp" >
    
    <div class="panel panel-primary">
        <div class="panel-heading">
        <h3 class="panel-title">添加宠物</h3>
            </div>
        <div class="panel-body form-inline">
              <label>id:</label>
        <input type="text" v-model="id"  class="form-control">
         <label>name:</label>
        <input type="text" v-model="name" class="form-control">
        <input type="button" value="添加" @click="add" class="btn btn-primary">

        </div>

    </div>
        <table class="table table-bordered table-hover table-striped">
            <thead>
            <tr>
                <th>id</th>
                <th>Name</th>
                <th>Ctime</th>
                <th>Operation</th>
            </tr>
            </thead>
            <tr  v-for="item,index in list" :key="item.id">
                <td>{{item.id}}</td>
                <td>{{item.name}}</td>
                <td>{{item.ctime}}</td>
                <td style="color: #0e9aef"><a href="" @click.prevent="del(item.id)">删除</a></td>
            </tr>
        </table>


</div>
<div>

    <script>
          var vue=new  Vue(
            {
                el: '#pp',
                data: {
                    id:'',
                    name:'',

                   list:[{id:1,name:"小狗",ctime:new Date()},{id:2,name:"小猫",ctime:new Date()},{id:3,name:"金鱼",ctime:new Date()},{id:4,name:"大闸蟹",ctime:new Date()}]

                },
                methods: {
                    add: function () {
                        this.list.push({id:this.id,ctime:new Date(),name: this.name})
                        this.name=this.id=''
                    },
                    del(id){
                        var index=this.list.findIndex((item)=>{ if(item.id == id){
                            return true;
                     
                        }
                        }
                       
                        )
                        this.list.splice(index,1)
                      
                    }

                }
            }
        )
    </script>
</div>
</body>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值