温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Vuejs中怎么实现一个搜索匹配功能

发布时间:2021-07-09 14:55:00 来源:亿速云 阅读:202 作者:Leah 栏目:web开发

这期内容当中小编将会给大家带来有关Vuejs中怎么实现一个搜索匹配功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

<!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>

上述就是小编为大家分享的Vuejs中怎么实现一个搜索匹配功能了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI