vue2的点击事件简单搜索案例

前端小白新人一枚~  有不对请指正哦~

写这篇文章的原因:

1. 我使用了 computedwatch分别实现对列表的过滤筛选,发现这两个方法均是用户输入自动过滤,于是我想使用 点击事件过滤,以下会附上使用watch和点击事件实现代码;

2. 对于watch和computed的理解不足,反思后我对两种方法的理解

(1)computed :   (更适合属性 如:商品结算)

    A.  触发函数执行  监听数据(其计算的是对象,属性; 计算属性不可在data中定义,例:不可侦听定义在data里的数组)

    B. computed中的函数必须要用 return返回 ,首次加载就开始监听,通俗讲就是页面首次刷新即可显示出全部将要进行筛选的数据

(2)watch:  (更适合数据 如:搜索框)

     A.watch是监听一个值的变化,然后执行对应的回调。不用 return返回 ,首次加载需要开启监听。immediate:true

watch实现输入自动过滤:


      <div class="search-input">
         <el-input v-model="keyword" placeholder="请输入内容">
         </el-input>
       </div>
       <div class="search-button">
         <el-button type="primary" @click="searchButton()"
          > 搜索 </el-button>
       </div>
         <ul>
           <li v-for="(card, index) in filtertabList" :key="index">
                {{ card.name }}
           </li>
         </ul>
data(){
 keyword: "",
 filtertabList: [],
      tabList: [
        { name: "职业0" },
        { name: "职业1" },
        { name: "兴趣2" },
        { name: "兴趣3" },
      ],
}

  watch: {
    keyword: {
       immediate: true,
       handler(value) {
         this.filtertabList = this.tabList.filter((t) => {
           return t.name.indexOf(value) !== -1;
         });
       },
     },
  },

 点击事件过滤: 

created() {
    this.filtertabList = this.tabList;
  },
methods:{ 
searchButton() {
      if (this.keyword) {
        this.filtertabList = this.tabList.filter((card) => {
          return card.name.indexOf(this.keyword) !== -1;
        });
      } else {
        this.filtertabList = this.tabList;
      }
    },
}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值