小程序实现搜索历史记录,去重搜索字段以及限制展示字段数量

  • 使用微信小程序实现搜索历史记录,去重搜索字段,限制字段数量以及点击重新搜索功能。
  • 在这里插入图片描述

对应界面

  <view class="search-left">
      <view class="search-icon"></view>
      <input 
          class="search-input" 
          bindinput="bindKeyInput" 
          bindconfirm="OnSearch" 
          type="text" 
          value="{{content}}"
          placeholder="输入内容或关键词"
        />
        <block wx:if="{{isInputText}}">
          <view class="search-close" catchtap="inputClose">
              <text>x</text>
          </view>
        </block>
      
  </view>
  <view class="search-right" bindtap="OnSearch">
      <text>搜索</text>
  </view>

点击搜索逻辑功能首先获取搜索的记录数组,搜索历史需要展示几个,对于重复的搜索字段不再存储


OnSearch() {
  let searchRecord = o.data.searchRecord //获取搜索存储的数据
  let content = this.data.content; //input的value值
  if (content != '') {
    if (searchRecord.length <= 5) {
      // 判断数组中是否已存在
      var newArr = searchRecord.findIndex (item =>{
          return item.title === this.data.content;
      });
      if (newArr != -1) {
          // 删除已存在后重新插入至数组
          searchRecord.splice(newArr, 1)
          searchRecord.unshift({ title:e })
      } else {
          searchRecord.unshift({ title:e })
        }
    }  else if (searchRecord.length == 0){
        searchRecord.unshift({ title:e })
    } else {
        console.log(searchRecord,'searchRecordsearchRecord')
        searchRecord.pop()//删掉旧的时间最早的第一条
        searchRecord.unshift({ title:e })
    }

    wx.setStorageSync('historyList', searchRecord)
    o.getHistorySearch() 
  } else {
    wx.showModal({
        title: "提示",
        content: "请输入要搜索的关键词"
    });
  }
  
}

获取存储的历史记录,在onLoad生命周期调用

  getHistorySearch() {
      this.setData({
        searchRecord: wx.getStorageSync('historyList') || [] //若无存储则为空
      })
  },

清除历史记录

  hisDel(){
        wx.clearStorageSync('historyList')
        this.setData({
            searchRecord: []
        })
    },

点击搜索的字段,再次搜索,获取点击的是哪个字段,传递过去,重新调用OnSearch方法

  historyClick(e){
        let name = e.currentTarget.dataset.item.title
        if (name) {
            this.setData({
                content:name
            })
            this.OnSearch()
        }
    },
  • 微信扫码搜索工程狮小周。点击技术交流,带你进入微信交流群,一起学习交流前端知识.

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值