vue中的搜索方法

思路分析:1.v-mode 双向绑定输入的内容  @change="Search"方法

                  2.data(){retuen{keywords:'',//定义搜索的文字}}

                  3.将获取到的keywords提交到后台调用搜索方法

废话不多说上截图

  1 <template>
  2     <div>
  3         <div class="main">
  4             <!-- 头部返回标签搜索框 -->
  5             <div class="header">
  6                 <i @click='back'  class="el-icon-back"></i>
  7                 <input type="search" placeholder="华为nove 5z"
  8                        @change="onSearch"
  9                        v-model="keywords"
 10                        >
 11             </div>
 12             <!-- 店铺信息粉丝量关注 -->
 13             <div class="shop">
 14                 <h2>华为自营官方旗舰店</h2>
 15                 <div class="ziyi">
 16                    <li><span class="business">自营</span><span style="color:#fff;">粉丝数量247万</span></li>
 17                    <li class="follow"><i class="el-icon-star-off"></i>关注</li>
 18                 </div>
 19             </div>
 20             <!-- tab滑动 -->
 21             <div class="header_tab">
 22                 <van-tabs v-model="active">
 23                     <van-tab title="手机" style="flex-basis: 12%;">
 24                          <!--价格销量筛选 -->
 25                          <div class="price">
 26                                 <ul>
 27                                     <li>价格</li>
 28                                     <li>销量</li>
 29                                     <li>筛选</li>
 30                                 </ul>
 31                              </div>
 32                             <!-- 商品信息渲染 -->
 33                              <ul class="box">
 34                                  <li v-for="(item,index) in goodsList" :key="index">
 35                                     <p class="commodity_i"><img :src="item.picUrl" alt="商品照片"></p>
 36                                     <p class="commodity_name">{{item.name}}</p>
 37                                     <!-- <p class="size"> 
 38                                          <span>6.26英寸</span>|
 39                                          <span>超长待机</span>|
 40                                          <span>128GB</span>
 41                                     </p> -->
 42                                     <p class="commodity_price">&yen;<span>{{item.counterPrice}}</span>/天限时价</p>  
 43                                     <p class="all">
 44                                          <span class="new">全新</span>
 45                                          <span class="free">免押金</span>
 46                                          <span class="gift">赠</span>
 47                                     </p>
 48                                     <p class="people">
 49                                         <span>52.7万</span>人付款
 50                                         <span>99%</span>好评
 51                                     </p>
 52                                  </li>
 53                                 
 54                              </ul>                 
 55                     </van-tab>
 56                     <van-tab title="游戏机" style="flex-basis: 12%;">
 57                            
 58                     </van-tab>
 59                     <van-tab title="电脑" style="flex-basis: 12%;">
 60                         <!--价格销量筛选 -->
 61                          <div class="price">
 62                            <ul>
 63                                <li>价格</li>
 64                                <li>销量</li>
 65                                <li>筛选</li>
 66                            </ul>
 67                         </div>
 68                        <!-- 商品信息渲染 -->
 69                         <ul class="box">
 70                             <li>
 71                                <!-- <p class="commodity_i"><img src="../assets/image/phone.png" alt="商品照片"></p> -->
 72                                <p class="commodity_name">Apple iPhone X</p>
 73                                <!-- <p class="size"> 
 74                                     <span>6.26英寸</span>|
 75                                     <span>超长待机</span>|
 76                                     <span>128GB</span>
 77                                </p> -->
 78                                <p class="commodity_price">&yen;<span>9.99</span>/天限时价</p>  
 79                                <p class="all">
 80                                     <span class="new">全新</span>
 81                                     <span class="free">免押金</span>
 82                                     <span class="gift">赠</span>
 83                                </p>
 84                                <p class="people">
 85                                    <span>52.7万</span>人付款
 86                                    <span>99%</span>好评
 87                                </p>
 88                             </li>
 89                         </ul>
 90                     </van-tab>
 91                     <van-tab title="相机" style="flex-basis: 12%;">内容 4</van-tab>
 92                    <van-tab title="办公用品" style="flex-basis: 12%;"></van-tab>
 93                 </van-tabs>
 94             </div> 
 95         </div>
 96        
 97     </div>
 98 
 99 </template>
100 
101 <script>
102 export default {
103     data(){
104         return{
105             goodsList:[],
106             // search:'',
107             keywords:''
108         }
109     },
110     methods:{
111         //返回上一级目录
112         back(){
113             this.$router.go(-1)
114         },
115         //商品数据
116         getgoodsList(){
117             this.$axios.get("http://192.168.0.18:8080/wx/goods/list",{params:{
118                  keyword:this.keywords
119             }})
120                 .then(res=>{
121                     console.log(res.data.data.list);
122                     this.goodsList=res.data.data.list;
123                     console.log(this.goodsList);
124                 })
125         },
126         onSearch(){
127             //获取到的值
128             let keyword=this.keywords;
129             this.$axios.get("http://192.168.0.18:8080/wx/goods/list",{params:{
130                  keyword:this.keywords
131             }})
132                 .then(res=>{
133                     console.log(res.data.data.list);
134                     this.goodsList=res.data.data.list;
135                     console.log(this.goodsList);
136                 })
137 
138         }
139        
140         
141     },
142     //tab点击
143     mounted(){
144         document.onclick=function(e){
145             var smallDay=document.querySelector('.small-day');
146             var middleDay=document.querySelector('.middle-day');
147             var largeDay=document.querySelector('.large-day');
148             var event=e||event;
149             var target=event.targrt||event.srcElement;
150             if(target.className==='small-day'){
151               target.style.backgroundColor="#C7E8FF";
152               target.style.color="#1385FF";
153               middleDay.style.backgroundColor="#F5F6FA";
154               middleDay.style.color='black';
155               largeDay.style.backgroundColor="#F5F6FA";
156               largeDay.style.color='black';
157             }
158              if(target.className==='middle-day'){
159               target.style.backgroundColor="#C7E8FF";
160               target.style.color="#1385FF";
161               smallDay.style.backgroundColor="#F5F6FA";
162               smallDay.style.color='black';
163               largeDay.style.backgroundColor="#F5F6FA";
164               largeDay.style.color='black';
165             }
166              if(target.className==='large-day'){
167               target.style.backgroundColor="#C7E8FF";
168               target.style.color="#1385FF";
169               middleDay.style.backgroundColor="#F5F6FA";
170               middleDay.style.color='black';
171               smallDay.style.backgroundColor="#F5F6FA";
172               smallDay.style.color='black';
173             }
174         }
175     },
176     created(){
177         this.getgoodsList();
178     }
179    
180    
181     
182 }
183 </script>
184 
185 <style  scoped>
186     li{
187         list-style: none;
188     }
189     .main{
190         background-image: url("../assets/image/main_bng.png") ;
191         background-color: #F8F9FB;
192         background-repeat: no-repeat;
193         background-position: -0.5rem -0.1rem;
194         background-size: 5.0rem 5.0rem;
195     }
196     .header{
197         padding: 0.15rem;
198     }
199     .header i{
200         font-size: 0.26rem;
201     }
202     .header input{
203         border-radius: 2rem;
204         79%;
205         color:#000000;
206         line-height: 0.28rem;
207         padding-left: 0.2rem;
208         margin-top: 0.1rem;
209         margin-left: 0.2rem;
210     }
211     .shop{
212         padding: 0.1rem;
213         padding-left: 0.26rem;
214         padding-right: 0.2rem;
215     }
216     .shop h2{
217         color:#fff;
218         font-size: 0.16rem;
219         font-weight: 500;
220     }
221     .ziyi{
222         margin-top: 0.1rem;
223         display: flex;
224         justify-content: space-between;
225     }
226     .business{   
227         color:#EB5516;
228         border-radius: 0.1rem;
229         border:1px solid #ED9636;
230         font-size: 0.13rem;
231         background-color: #fff;
232         padding: 0.01rem;
233         padding-left: 0.03rem;
234         padding-right: 0.03rem;
235     }
236     .follow{
237         color:#fff;
238         border-radius: 0.1rem;
239         border:1px solid #fff;
240         font-size: 0.13rem;
241         background-color: #7A7A7A;
242         padding: 0.01rem;
243         padding-left: 0.03rem;
244         padding-right: 0.03rem;
245     }
246    
247     /*tab 点击 样式*/
248     .van-tabs /deep/ .van-tabs__line {
249           position: absolute;
250            0.2rem !important;
251           bottom: 0.15rem;
252           left: 0;
253           z-index: 1;
254           height: 0.03rem;
255           background-color: #f44;
256           border-radius: 0.03rem;
257           background: -webkit-linear-gradient(to left, #fff, #fff) !important;
258           background: -o-linear-gradient(to left, #fff, #fff) !important;
259           background: -moz-linear-gradient(to left, #fff, #fff) !important;
260           background: linear-gradient(to left, #fff, #fff) !important;
261    }
262   .van-tabs /deep/ .van-tabs__wrap{
263          margin-left: 0;
264           100%;
265   }
266   .van-tabs /deep/ .van-tabs__nav{
267         background:rgba(0,0,0,.01);
268   }
269   .van-tabs /deep/ [class*=van-hairline]::after{
270        border:1px solid rgba(0,0,0,.01);
271   }
272   .van-tabs /deep/ .van-tab--active {
273       color: #fff;
274       font-weight: 500;
275   }
276   .van-tabs /deep/ .van-tab{
277       color: #fff;
278       flex-basis: 20% !important;
279   }
280   /* 价格销量筛选 */
281   .price ul{
282       display: flex;
283       justify-content: space-around;
284   }
285   .price ul li{
286       color:#5E6165;
287       font-size: 0.14rem;
288       padding-top: 0.1rem;
289   }
290   /*商品信息渲染*/
291   .ii li{
292       margin-top: 30px;
293   }  
294   .box{
295        100%;
296       overflow: hidden;
297   }
298   .box li{
299        1.6rem;
300       overflow: hidden;
301       overflow: auto;
302       border-radius: 0.2rem;
303       float:left;
304       border:1px solid #ccc;
305       margin-top: 20px;
306       margin-left: 20px;
307       background-color: #fff;
308   }
309   .commodity_i{
310        1.3rem;
311       height: 1.4rem;
312       padding: 0.18rem;
313   } 
314   .commodity_i>img{
315        100%;
316   }
317  
318   .commodity_name{
319       font-weight: 600;
320       font-size: 0.12rem;
321       padding-top: 0.2rem;
322       padding-left: 0.12rem;
323   }
324   .size{
325       background-color: #F2F2F2;
326       margin-top: 0.1rem;
327       margin-left: 0.06rem;
328       margin-right: 0.06rem;
329       font-size: 0.01rem;
330   }
331   .size span{
332       margin-left: 0.001rem;
333   }
334   .commodity_price{
335       padding-left: 0.1rem;
336       color:#B3381D;
337       margin-top: 0.06rem;
338   }
339   .commodity_price span{
340       font-weight:bold;
341   }
342   .all{
343       margin-top: 0.08rem;
344   }
345   .new{
346       background-color: #EE6226;
347       color:#fff;
348       font-size: 0.06rem;
349       padding: 0.02rem;
350       margin-left: 0.1rem;
351   }
352   .free{
353       color:#46A8F2;
354       border:1px solid #46A8F2;
355       font-size: 0.06rem;
356       padding: 0.01rem;
357       margin-left: 0.1rem;
358   }
359   .gift{
360       color:#F08E26;
361       border:1px solid #F08E26;
362       font-size: 0.06rem;
363       padding: 0.01rem;
364       margin-left: 0.1rem;
365   }
366   .people{
367       margin-top: 0.1rem;
368       color:#CFCFCF;
369       font-size: 0.1rem;
370       padding-left: 0.12rem;
371       padding-bottom: 0.12rem;
372   }
373 </style>
原文地址:https://www.cnblogs.com/fei3/p/11913721.html