分享一个简易的搜索功能微信小程序,也可以在vue使用

搜索的流程:
监听输入框内容,输入后开始匹配列表数据,然后再渲染,清空时,列表重新初始化
data的原始数据

theme:[{
time:1,
name :'张三',
age:'23'
},
{
time:1,
name :'李四',
age:'23'
},
{
time:1,
name :'王二麻子',
age:'23'
}

创建一个空数组,用来渲染我们的列表

themList:[];

然后我们到wxml页面写一个输入框和一个渲染列表的盒子

 <input bindinput="searchTheme"  type="text" placeholder="请输入内容" />
<view wx:for="{{themeList}}" wx:key="index">
 </view>

然后我们就要写我们的方法了

searchTheme(e) {
    console.log(e.detail.value);
    let title = e.detail.value
    let themeList = [];
    let theme = this.data.theme;
    if (title) {
      themeList = theme.filter((value) => {
        return value.title.indexOf(title) !== -1;
      });
      console.log(themeList)
      this.setData({
        themeList: themeList
      })
    } else {
      this.setData({
        themeList: theme
      })
    }
  },

bindinput会返回一个输入框的值,而这个值就是event对象下的detail里的value
获取到值后判断输入框是否有值,有的话,就拿出数据做一个筛选,return返回的就是存在这个字段的列表,然后通过this.setData去更新data里面的数据,如果输入框没有值,那就直接渲染原始数据

注意:如果你使用的vue的话,这里最大的不同就是需要使用watch去监听输入框的值,不然不会更新

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值