12vue学习——实现搜索框功能

12vue学习——实现搜索框功能

前言

经过前面对vue的一些基础的知识点的学习,我们知道了利用 v-for 指令将 data 中的数组的数据全部渲染到页面上是如何实现的了,但是如此不加以选择的全部将数据加载到页面有时候不符合我们功能的需求,像搜索功能这样的就需要我们对数据加以选择过滤再渲染出来,接下来让我们来学习怎么做吧。

全部代码:
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>实现搜索功能</title>
  <link rel="stylesheet" href="../lib/bootstrap.css">
</head>
<body>
  <div class="body">
      <input type="text" class=" form-control" v-model="keywords" style="width: 200px">
      <table class="table table-bordered table-hover table-striped">
          <thead>
              <tr>
                  <th>id</th>
                  <th>name</th>
              </tr>
          </thead>
          <tbody>
              <tr v-for="item in search(keywords)">
                  <td>{{item.id}}</td>
                  <td>{{item.name}}</td>
              </tr>
          </tbody>
      </table>
  </div>
  <script src="../lib/vue-2.4.0.js"></script>
  <script>
      let vm = new Vue({
          el: ".body",
          data: {
              keywords:"",
              list: [
                  { id: 1, name: "我是1" },
                  { id: 2, name: "我是2" }
              ]
          },
          methods: {
              search(keywords){
              	/* 
                  使用foreach方法
                  let newList = [];
                  this.list.forEach(item => {
                      if(item.name.indexOf(keywords) != -1){
                          newList.push(item);
                      }
                  });
                  return newList; 
             		*/
             		/* 使用filters方法 */
                 return this.list.filter(item => {
                 if(item.name.includes(keywords)){
                      return item;
                 }
              })
           }
        },
     })
 </script>
</body>
</html> 
步骤:
1.给页面一个搜索的文本框以及一个存放数组的表格,界面如图:

在这里插入图片描述

2.将 v-for=“item in list” 中的 list 修改为 一个选择的方法

(1)如果直接使用 list 变量名则是将所有对象都显示到页面上去,所以我们需要的是一个返回选择之后的数组来替换 list 。
(2)将搜索框中的输入的值使用 v-model 和 data 中的数据实现双向数据绑定,然后将 该值作为参数传给该选择的方法
在这里插入图片描述

3. 实现search 方法

分析:
(1) 遍历 data 中的 list 对象—— forEach 方法和 filter 方法
(2)看遍历得到的 item.name 是否包含 keywords —— 是否包含的方法有 indexOfincludes
(3)代码:
在这里插入图片描述在这里插入图片描述

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值