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


Posted in Javascript onMarch 26, 2020

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

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

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

<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方法名即可。

更多搜索功能实现的精彩文章,请点击专题:javascript搜索功能汇总 进行学习

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript类库D
Oct 24 Javascript
node.js使用require()函数加载模块
Nov 26 Javascript
node.js中的fs.chmodSync方法使用说明
Dec 18 Javascript
JS提交form表单实例分析
Dec 10 Javascript
jQuery图片轮播实现并封装(一)
Dec 03 Javascript
Vuex利用state保存新闻数据实例
Jun 28 Javascript
bootstrap fileinput插件实现预览上传照片功能
Jan 23 Javascript
基于vue 开发中出现警告问题去除方法
Jan 25 Javascript
vue.js 底部导航栏 一级路由显示 子路由不显示的解决方法
Mar 09 Javascript
javascript的this关键字详解
May 20 Javascript
Vue 页面权限控制和登陆验证功能的实例代码
Jun 20 Javascript
初学vue出现空格警告的原因及其解决方案
Oct 31 Javascript
微信小程序云开发修改云数据库中的数据方法
May 18 #Javascript
小程序云开发教程如何使用云函数实现点赞功能
May 18 #Javascript
微信小程序实现元素渐入渐出动画效果封装方法
May 18 #Javascript
微信小程序收货地址API兼容低版本解决方法
May 18 #Javascript
小程序云开发获取不到数据库记录的解决方法
May 18 #Javascript
小程序云开发之用户注册登录
May 18 #Javascript
小程序云开发实现数据库异步操作同步化
May 18 #Javascript
You might like
PHP7 新特性详细介绍
2016/09/06 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
2017/04/09 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
2017/06/15 PHP
php curl操作API接口类完整示例
2019/05/21 PHP
jquery实现pager控件示例
2014/04/09 Javascript
JsRender for object语法简介
2014/10/31 Javascript
使用jquery清空、复位整个输入域
2015/04/02 Javascript
JavaScript判断按钮被点击的方法
2015/12/13 Javascript
使用angularjs创建简单表格
2016/01/21 Javascript
JavaScript语言精粹经典实例(整理篇)
2016/06/07 Javascript
headjs实现网站并行加载但顺序执行JS
2016/11/29 Javascript
Vue中正确使用jQuery的方法
2017/10/30 jQuery
ionic grid(栅格)九宫格制作详解
2018/06/30 Javascript
浅谈react-router@4.0 使用方法和源码分析
2019/06/04 Javascript
JavaScript跳出循环的三种方法(break, return, continue)
2019/07/30 Javascript
js设计模式之单例模式原理与用法详解
2019/08/15 Javascript
[27:02]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第三场
2014/05/24 DOTA
举例详解Python中threading模块的几个常用方法
2015/06/18 Python
python中的字典使用分享
2016/07/31 Python
浅谈使用Python内置函数getattr实现分发模式
2018/01/22 Python
详解python异步编程之asyncio(百万并发)
2018/07/07 Python
python conda操作方法
2019/09/11 Python
python带参数打包exe及调用方式
2019/12/21 Python
使用Python对Dicom文件进行读取与写入的实现
2020/04/20 Python
python中get和post有什么区别
2020/06/19 Python
英国No.1体育用品零售商:SportsDirect.com
2019/10/16 全球购物
大学生护理专业自荐信
2013/10/03 职场文书
岗位职责的含义
2013/11/17 职场文书
七年级政治教学反思
2014/02/03 职场文书
2015年度信用社工作总结
2015/05/04 职场文书
2015年初中教务处工作总结
2015/07/21 职场文书
标准演讲稿格式结尾应该怎么书写?
2019/07/17 职场文书
Django 如何实现文件上传下载
2021/04/08 Python
简单且有用的Python数据分析和机器学习代码
2021/07/02 Python
常用的MongoDB查询语句的示例代码
2021/07/25 MongoDB