您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“怎么用Vue代碼實現一個搜索匹配功能”,內容詳細,步驟清晰,細節處理妥當,希望這篇“怎么用Vue代碼實現一個搜索匹配功能”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
代碼如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Vue測試2</title> <script type="text/javascript" src="vue.min.js"></script> <style type="text/css"> *{ padding: 0; margin: 0; font-size: 14px; font-family: "微軟雅黑"; } #box{ width: 500px; height: auto; border: 1px solid #ccc; margin: 50px auto; padding: 10px; } .search{ width: 480px; height: 100px; text-align: center; } .searchBox{ width: 230px; height: 40px; outline: none; text-indent: 10px; margin-right: 20px; } .btn{ width: 100px; height: 50px; cursor: pointer; font-size: 18px; } .goodsheet{ width: 500px; height: auto; border: 1px solid #eee; } .goodsheet tr td, .goodsheet tr th{ width: 33%; border: 1px solid #eee; padding: 5px 10px; text-align: left; } .goodsheet tr th span{ background: #ff9900; padding: 0 6px; color: #fff; cursor: pointer; } </style> </head> <body> <div id="box"> <div class="search"> <input type="text" class="searchBox" v-model="searchVal"> <button class="btn">搜 索</button> </div> <table class="goodsheet"> <tr> <th>商品名</th> <th>單價 <span @click="orderFn('price', false)">↑</span> <span @click="orderFn('price', true)">↓</span> </th> <th>銷量 <span @click="orderFn('sales', false)">↑</span> <span @click="orderFn('sales', true)">↓</span> </th> </tr> <tr v-for='(item, key) in list'> <td>{{item.name}}</td> <td>{{item.price}}</td> <td>{{item.sales}}萬</td> </tr> </table> </div> <script type="text/javascript"> var myVueTest = new Vue({ el:'#box', data:{ goodsList:[ //假數據 {name:"三星Galaxy Note8",price:5200,sales:2.6}, {name:"iphone5s",price:2500,sales:2.2}, {name:"iphone6",price:2800,sales:1.6}, {name:"iphone6s",price:3200,sales:2.9}, {name:"iphone7",price:3800,sales:12.6}, {name:"iphone7plus",price:4200,sales:2.1}, {name:"iphone8",price:5500,sales:10.6}, {name:"華為",price:4600,sales:7.6}, {name:"小米",price:1200,sales:32.6}, {name:"OPPOR11",price:3000,sales:1.2}, {name:"vivoX20",price:3250,sales:2.9} ], searchVal:'', //默認輸入為空 letter:'', //默認不排序 original:false //默認從小到大排列 }, methods:{ orderFn(letter,original){ this.letter = letter; //排序字段 price or sales this.original = original; //排序方式 up or down } }, //通過計算屬性過濾數據 computed:{ list: function(){ var _this = this; //邏輯-->根據input的value值篩選goodsList中的數據 var arrByZM = [];//聲明一個空數組來存放數據 for (var i=0;i<this.goodsList.length;i++){ //for循環數據中的每一項(根據name值) if(this.goodsList[i].name.search(this.searchVal) != -1){ //判斷輸入框中的值是否可以匹配到數據,如果匹配成功 arrByZM.push(this.goodsList[i]); //向空數組中添加數據 } } //邏輯-->升序降序排列 false: 默認從小到大 true:默認從大到小 //判斷,如果要letter不為空,說明要進行排序 if(this.letter != ''){ arrByZM.sort(function( a , b){ if(_this.original){ return b[_this.letter] - a[_this.letter]; }else{ return a[_this.letter] - b[_this.letter]; } }); } //一定要記得返回篩選后的數據 return arrByZM; } } }); </script> </body> </html>
Vue是一款友好的、多用途且高性能的JavaScript框架,使用vue可以創建可維護性和可測試性更強的代碼庫,Vue允許可以將一個網頁分割成可復用的組件,每個組件都包含屬于自己的HTML、CSS、JavaScript,以用來渲染網頁中相應的地方,所以越來越多的前端開發者使用vue。
讀到這里,這篇“怎么用Vue代碼實現一個搜索匹配功能”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。