微信小程序之"搜索历史"功能实现

结合了微信给的资料,马马虎虎摸索出了一些东西,下面说下一下微信小程里序搜索历史功能的实现,下图是实现效果。

这里写图片描述

首先,定义历史记录的显示风格和方式,在下用的是列表模式,没有使用什么比较酷炫的套路。

<view wx:for="{{sercherStorage}}" wx:key="item.id">
    <view class="liclass" style="color:#9E9E9E;border-bottom:0;font-size:26rpx;" id="{{item.id}}" bindtap="tapSercherStorage">
      <text style="width:100rpx">{{item.name}}</text>
    </view>
</view>

其次是“清除历史记录”按钮,个人建议在没有搜索历史的时候不显示按钮,因为在下有些强迫症

<view wx:if="{{sercherStorage.length!==0}}" style="text-align:center;" bindtap="clearSearchStorage">
   <view class="history-span">清除历史记录</view>
</view>

(微信小程序的数据交互还是蛮喜欢的)

这里是列表的CSS样式

/*搜索历史列表外部容器样式*/
   .ddclass { 
 position: absolute; 
 width: 100%; 
 margin-top: 10px; 
 left: 0; 

} 


/*搜索历史普通样式*/

 .liclass { 
 font-size: 14px; 
 line-height: 34px; 
 color: #575757; 
 height: 34px; 
 display: block; 
 padding-left: 18px; 
 background-color: #fff; 
 border-bottom: 1px solid #dbdbdb; 
} 

最后是一些JS控制
1、参数声明

 data: {
        sercherStorage: [],
        StorageFlag: false        //显示搜索记录标志位
 }

2、两个主要的JS方法

    //清除缓存历史
    clearSearchStorage: function () {
      wx.removeStorageSync('searchData')
      this.setData({
        sercherStorage: [],
        StorageFlag: false,
      })
    },
    //打开历史记录列表
    openLocationsercher: function () {
      this.setData({
        sercherStorage: wx.getStorageSync('searchData') || [],   
        StorageFlag: true,
        listFlag: true,
      })
    }

3、点击搜索添加搜索内容进历史记录

var self = this;
if(self.data.search.length == 0){
    return;
}
//控制搜索历史
var self = this;
if (this.data.search != '') {
  //将搜索记录更新到缓存
  var searchData = self.data.sercherStorage;
  searchData.push({
    id: searchData.length,
    name: self.data.search
  })
  wx.setStorageSync('searchData', searchData);
  self.setData({ StorageFlag: false, })
}

4、在进入搜索页面时,检索出缓存中的搜索历史。(适用于搜索页面是单独页面的业务)

 onLoad: function (options) {
     this.openLocationsercher();
 }

5、清空历史记录,只需在上面声明搜索按钮时把”bindtap”属性值设置成写好的JS方法名即可(赛高!)。

在下正在进化成全栈~ 共勉

参考文章:小程序搜索框功能说明

  • 6
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值