vue添加,删除,搜索功能

    <!--new 的 vue 实例会控制这个元素中的所有内容,也是MVVM中的 V -->
        <div id="app">
            <div class="panel panel-primary">
                <div class="panel-heading">
                    <h3 class="panel-title">添加效果</h3>
                </div>
                <div class="panel-body form-inline">
                    <label>Id: <input type="text" class="form-control" v-model="id"/></label>
                    <label>Name: <input type="text" class="form-control" v-model="name"/></label>
                    <input type="button" value="添加" class="btn btn-primary" @click="add"/>
                    <label>搜索关键字: <input type="text" class="form-control" v-model="keywords"/></label>
                </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>
                <tbody>
                <!--自定义 search 方法,把关键字通过传参的形式,传递给 search方法,在 search 方法内部,通过 执行 for循环,把所有符合 搜索关键字的数据,保存到一个新数据中,返回 -->
                <tr v-for="item in search(keywords)" :key="item.id">
                    <td>{{ item.id }}</td>
                    <td>{{ item.name }}</td>
                    <td>{{ item.ctime }}</td>
                    <td>
                        <a href="" @click.prevent="del(item.id)">删除</a>
                    </td>
                </tr>
                </tbody>
            </table>
        </div>

  

   <script>
       //创建一个vue的实例,也是MVVM中的 VM调度者,里面可传配置对象
            var vm = new Vue({
                el:"#app",
                //data指MVVM中的 M ,用来存 el 中用的数据
                data:{
                    id:"",
                    name:"",
                    keywords:"",
                    list:[
                        {id:1, name:‘名字1‘, ctime:new Date()},
                        {id:2, name:‘名字2‘, ctime:new Date()}
                    ]
                },
                methods:{
                    add:function(){
                        var abc = {id:this.id, name:this.name, ctime:new Date()}
                        this.list.push(abc);
                        this.id = this.name = ""
                    },
        //        删除事件逻辑:
        //          1.删除的时候一般是根据 id 来进行删除的
        //          2.给个点击事件,取消默认事件,因为要通过id来删,所以将id传个参    @click.prevent="del(item.id)"
        //          3.定义 del 的方法(函数,点击事件)
        //          4.函数中 传参id,根据id删除数据
        //          5.分析:
        //              i:根据id,找到当前的索引
        //              ii:找到索引了,根据 数组的 splice 方法进行删除
        //          6.注意: forEach  some  filter  findIndex     这些都属于数组的新方法
        //              forEach : 没有办法终止
        //              some : 通过 return:true 可以终止
        //              filter : 过滤,符合条件的
        //              findIndex : 找到数组对应的索引,专门查找索引
        //          7.之所以用到some ,是因为找到要删除的 id后,就终止了循环
        //              some和findIndex的区别:some方法中可以做任何事情,但是findIndex是专门用来查索引的
                    del:function(id){
        //              一种写法:
        //              this.list.some((item,i)=>{
        //                 if(item.id == id){
        //                   .splice(2,3) 从索引为 i(或者2) 开始,删除 1(或者3) 个
        //                   this.list.splice(i,1)
        //                   终止循环
        //                   return true;
        //                 }
        //              });
        //              另一种写法:
                        var index = this.list.findIndex(item =>{
                            if(item.id == id){
                                return true;
                            }
                        });
                        this.list.splice(index,1)
                     },

                    search:function(keywords){
                        var newList = []
                        this.list.forEach(item=>{
                          if(item.name.indexOf(keywords) != -1){
                            newList.push(item)
                         }
                        })
                       return newList;

            //          return this.list.filter(item =>{
            //            if(item.name.indexOf(keywords) != -1)
            //              ES6中,为字符串提供了一个新的方法,String.prototype.includes(‘要包含的字符串‘),如果包含,则返回 true ,否则返回 false
            //              if(item.name.includes(keywords)){
            //                 return  item
            //              }
            //           })
                  }
                }
             })
        </script>

  

原文地址:https://www.cnblogs.com/wuyunna/p/11275954.html

时间: 2024-08-30 00:42:02

vue添加,删除,搜索功能的相关文章

vue自动完成搜索功能的数据请求处理

在现在的互联网世界里,自动完成的搜索功能是一个很常见的功能.比如百度.搜狗.360搜索 ... 功能描述一下大概是这个样子的:有一个搜索框,用户在里面输入要查询的条件,系统会“智能”判断用户输完了,然后自动根据条件去搜索相关的数据返回给用户. 网上这个自动完成的插件很多,实现自动完成功能也不复杂,特别是像vue.angularjs.react这类可以实现双向绑定的库出现以后,实现就更方便了.本文不讲自动完成功能的实现,而是介绍自动完成功能后续数据的请求该如何考虑,主要要处理下面两个问题. 问题1

windows 无法添加删除.NET 功能

由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. 系统管理员也有可能会引起这种行为,系统管理员将计算机配置为使用 Windows Server Update Services (WSUS) 提供服务,而不是使用 Microsoft Windows Update 服务器.在这种情况下,请与您的系统管理员联系,并请求他们启用"指定可选组件安装和组件修复的设置"组策略设置,并配置"备用源文件路径"值或选择&

Vue,品牌列表案例(仅添加,删除,搜索,全局过滤器,私有过滤器)

Vue,品牌列表案例(仅添加,删除,搜索,全局过滤器,私有过滤器) 添加了时间过滤器(私有的) 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title></title> 6 <script src="../../js/vue.js"></script> 7 <link rel=&qu

表格的一些原生js操作(隔行变色,高亮显示,添加删除,搜索)

看着网上的视频教程,虽说还是有点简单,但还是不免想记录下.这些操作包括(隔行变色,高亮显示,添加删除,搜索功能),而这儿就是涉及table的原有属性“tBodies” “rows” “cells”等几个方法,search方法, split方法等等 效果体验:http://runjs.cn/detail/vm8bz8dl <!doctype html> <html> <head> <meta charset="utf-8"> <tit

【转】为Android应用添加搜索功能

为Android应用添加搜索功能 为Android应用增加搜索功能:增加搜索建议

Android高级控件(一)——ListView绑定CheckBox实现全选,添加和删除等功能

Android高级控件(一)--ListView绑定CheckBox实现全选,添加和删除等功能 这个控件还是挺复杂的.也是项目中应该算是比較经常使用的了,所以写了一个小Demo来讲讲,主要是自己定义adapter的使用方法.加了非常多的推断等等等等-.我们先来看看实现的效果吧! 好的,我们新建一个项目LvCheckBox 我们事先先把这两个布局写好吧,一个是主布局,另一个listview的item.xml.相信不用多说 activity_main.xml <LinearLayout xmlns:

JqueryMobile为Listview动态添加、删除查询功能

JqueryMobile的版本不同,引用JS的API也不同,因此为Listview动态添加.删除查询功能的代码也不同. 假设Listview控件内容如下: <ul data-role="listview" id="listview"  data-inset="true"> <li><a href="#">Acura</a></li> <li><a h

Javascript DOM 03 表格添加、删除 + 搜索

获取 tBodies.tHead.tFoot.rows.cells 隔行变色 鼠标移入高亮 添加.删除一行 DOM方法的使用  添加.删除 1 <script> 2 window.onload=function (){ 3 /*var str='abcdef'; 4 alert(str.search('g')); //找到并且返回字符串出现的位置,如果没找到-1 5 */ 6 /* 7 var str='abc 123 ert'; 8 var arr=str.split(' '); 9 ale

C# 系统应用之ListView控件 (三).添加ContextMenuStrip右键菜单打开文件和删除文件功能

在前面讲述过使用TreeView控件和ListView控件显示磁盘目录信息,但仅仅是显示信息是不够的,我们还需要具体的操作.在"个人电脑使用历史痕迹"项目中我还需要添加"打开文件"和"删除文件"两种方法.具体如下: 在第一篇文章"C# 系统应用之TreeView控件 (一).显示树状磁盘文件目录及加载图标"中显示如下: http://blog.csdn.net/eastmount/article/details/1945310

添加删除功能的EditText

EditTextWithDel组件的功能如下:        1.在没用内容的时候显示不可用的图片状态,在有内容的时候显示可用的图片状态:        2.在有内容的时候点击删除按钮可以删除EditText中的内容: 组件的代码如下: [java]view plaincopyprint? package com.sunday.customs; import com.example.customs.R; import android.content.Context; import android