1. 程式人生 > >Vue實現添加、刪除、關鍵字查詢

Vue實現添加、刪除、關鍵字查詢

cti thead word color 開始 bootstrap 過濾 var each

從今天開始,將不定期更新關於 Vue 的學習以及各種方法的使用,好了,下面就開始吧

Vue的實例創建首先需要我們引入一個vue.js(也可以在本地npm安裝vue,我為了省事就...),然後在HTML中定義一個 id 為 app 的 div ,這裏定義的 id 是看你的個人喜好了,只要和後面我們在 script 標簽內一直即可

下面是一個簡單的小例子,實現 列表的添加、刪除、關鍵字查詢

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta 
name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>首頁</title> <script src="./lib/vue.js"></script> <link rel="stylesheet" href="./css/home.css"> <link rel="stylesheet" href
="./css/bootstrap.css"> </head> <body> <div id="app"> <!-- 實現添加 刪除 功能 --> <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title">添加人物信息</h3> </div> <
div class="panel-body form-inline"> <label> Id: <input type="text" v-model="id" class="form-control"> </label> <label> Name: <input type="text" v-model="name" class="form-control"> </label> <label> Age: <input type="text" v-model="age" class="form-control"> </label> <label> Gender: <input type="text" v-model="gender" class="form-control"> </label> <label> <input type="button" @click="add" value="添加" class="btn btn-primary"> </label> <label> 關鍵字搜索: <input type="text" v-model="keywords" placeholder="輸入關鍵字搜索" class="form-control"> </label> </div> </div> <table class="table table-bordered table-hover"> <thead> <tr> <th>ID</th> <th>Name</th> <th>Age</th> <th>Gender</th> <th>登記時間</th> <th>編輯</th> </tr> </thead> <tbody> <tr v-for="item in search(keywords)" :key="item.id"> <td>{{ item.id }}</td> <td>{{ item.name }}</td> <td>{{ item.age }}</td> <td>{{ item.gender }}</td> <td>{{ item.ctime }}</td> <td> <a href="#" @click.prevent="del(item.id)">刪除</a> </td> </tr> </tbody> </table> </div> <script src="./js/home.js"></script> </body> </html>
var vm = new Vue({//js
  el: "#app",
  data: {
    id: "",
    name: "",
    age: "",
    gender: "",
    ctime: "",
    keywords: "",
    list: [
      { id: 1, name: "tom", age: 20, gender: "男", ctime: new Date() },
      { id: 2, name: "jam", age: 30, gender: "男", ctime: new Date() },
      { id: 3, name: "mark", age: 18, gender: "女", ctime: new Date() },
    ]
  },
  methods: {

    add() {//添加列表信息
      var addList = { id: this.id, name: this.name, age: this.age, gender: this.gender, ctime: this.ctime };
      this.list.push(addList);
      this.id = this.name = this.age = this.gender = this.ctime = "";
    },
    del(id) {//刪除列表信息
      //第一種方法
      // some 方法返回 boolean 值,不是篩選一個新的數組,而是篩選有沒有符合條件的值,只要有一個值符合條件則立即返回 true,不再執行後續操作(循環),否則返回 false
      // this.list.some((item, i) => {
      //   if (item.id == id) {
      //     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(keywords) {//通過關鍵字搜索
      //第一種方法
      // var newList=[];
      // this.list.forEach(item =>{
      //   if(item.name.indexOf(keywords) != -1){
      //     newList.push(item)
      //   }
      // });
      // return newList;


      //第二種方法
      //filter方法是數組的過濾方法,返回一個新的數組,不會對原數組修改,return true 為想要的值,return false 則為去掉的值
      return this.list.filter(item => {
        if (item.name.includes(keywords)) {
          return item
        }
      })
    }
  }
})

Vue實現添加、刪除、關鍵字查詢