vue 案例-添加 删除 搜索

vue案例-添加/删除/搜索

摘要:本案例利用html中table标签,通过tr添加、删除、搜索过滤,演示vue中如何不通过操作dom,快速修改数据。
截图:

  • html

    <h1>我的汽车</h1>
        <div id="app">
          <p>
            id<input v-model="id" /> 品牌<input name="logo" v-model="logo" />
            <input type="button" value="添加" @click="add()" />
            搜索<input v-model="keyword" />
          </p>
          <table>
            <th>
              <td>id</td>
              <td>品牌</td>
              <td>时间</td>
              <td>操作</td>
            </th>
            <tr v-for="(item,index) in search(keyword)" :key="item.id">
              <td>{{ item.id }}</td>
              <td>{{ item.logo }}</td>
              <td>{{ item.datetime }}</td>
              <td><a href="" @click.prevent="delitem(index)">删除</a></td>
            </tr>
          </table>
        </div>
    
  • javascript

    <script>
         Vue.filter('datefmt', function(dt,fmt=""){
            var y = dt.getFullYear()
            var m = dt.getMonth()
            var d = dt.getDate()
            if(fmt.toLowerCase()=="yyyy-mm-dd"){
                return `${y}-${m}-${d}`
            }else{
                var hh = dt.getHours()
                var mm = dt.getMinutes()
                var ss = dt.getSeconds().toString()
                return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
            }
    
         })
          /**
           * 1 添加数据
           *   绑定input标签内容到td
           *   tr for
           * 2 add button 绑定methods 将该项添加到datalist中
           * 3 删除功能 绑定a标签 从datalist中移除该项
           *
           **/
          var app = new Vue({
            el: "#app",
            data: {
              logo: "",
              id: "",
              keyword: "",
              dataList: [
                {
                  id: "1",
                  logo: "玛莎拉蒂",
                  datetime: new Date(),
                },
                {
                  id: "2",
                  logo: "阿斯顿马丁",
                  datetime: new Date(),
                },
              ],
            },
            methods: {
              add() {
                this.dataList.push({
                  id: this.id,
                  logo: this.logo,
                  datetime: new Date(),
                });
              },
              delitem(index) {
                console.log(index);
                this.dataList.splice(index, 1);
              },
              search(keyword) {
                // 方法1 遍历列表,找到符合调降的元素,添加到新列表
                newList = [];
                this.dataList.forEach((item) => {
                  if (item.logo.indexOf(keyword) != -1) {
                    newList.push(item);
                  }
                });
                return newList;
              },
            },
          });
        </script>
    
posted @ 2020-12-20 13:06  -至尊宝-  阅读(158)  评论(0编辑  收藏  举报