微信小程序结合Storage实现搜索历史效果


Posted in Javascript onMay 18, 2019

本文实例为大家分享了微信小程序实现搜索历史效果的具体代码,供大家参考,具体内容如下

实现目标

微信小程序结合Storage实现搜索历史效果

代码实现

集合wx.setStorageSync()和wx.getStorageSync()这两个同步函数来实现这个功能实际上非常简单。

<!-- wxml -->
<view class="search-box">
 <view class='icon'>
  <image src='../../assets/search.png' mode='widthFix'></image>
  <!-- 使用bindinput属性绑定getSearchKey函数获取input组件中的值-->
  <!-- 使用bindblur属性绑定routeToSearchResPage函数处理input失去焦点事件-->
  <input placeholder='搜索你想购买的商品' bindinput='getSearchKey' bindblur='routeToSearchResPage'></input>
 </view>
 <text>取消</text>
</view>
<view class='options'>
 <text>历史搜索记录</text>
 <text bindtap='clearHistory'>清空</text>
</view>
<view class='options'>
<!-- 遍历 history 数组 -->
 <text class='item' wx:for='{{history}}' data-index='{{index}}' bindtap='routeToSearchResPage'>{{item}}</text>
</view>

样式表 可无视

/* wxss */
.search-box {
 background-color: #142341;
 overflow: hidden;
 padding: 3%;
}

.search-box .icon {
 width: 80%;
 padding-left: 2%;
 background-color: #fff;
 float: left;
 border-radius: 1rem;
}

.search-box .icon image {
 width: 1rem;
 height: 1rem;
 display: block;
 margin: 0.5rem 0;
 float: left;
}

.search-box input {
 display: block;
 font-size: 0.8rem;
 height: 2rem;
 line-height: 2rem;
 float: left;
 margin-left: 5%;
}

.search-box text {
 width: 18%;
 float: left;
 color: #fff;
 line-height: 2rem;
 text-align: center;
 font-size: 0.8rem;
}

.options {
 width: 94%;
 margin: 3%;
 font-size: 0.8rem;
 color: #999;
}

.options text:last-child {
 color: #1268bb;
 float: right;
}

.options .item {
 padding: 0.2rem 0.5rem;
 background-color: #eee;
 float: left !important;
 color: #565656 !important;
 border-radius: 0.1rem;
 margin: 3%;
}

JavaScript

//index.js
Page({
 data: {
  searchKey: "",
  history: []
 },
 //获取input文本
 getSearchKey: function(e) {
  this.setData({
   searchKey: e.detail.value
  })
 },
 // 清空page对象data的history数组 重置缓存为[]
 clearHistory: function() {
  this.setData({
   history: []
  })
  wx.setStorageSync("history", [])
 },
 // input失去焦点函数
 routeToSearchResPage: function(e) {
  //对历史记录的点击事件 已忽略
  let _this = this;
  let _searchKey = this.data.searchKey;
  if (!this.data.searchKey) {
   return
  }

  let history = wx.getStorageSync("history") || [];
  history.push(this.data.searchKey)
  wx.setStorageSync("history", history);
 },
 //每次显示钩子函数都去读一次本地storage
 onShow: function() {
  this.setData({
   history: wx.getStorageSync("history") || []
  })
 }
})

本地存储可在微信开发者工具调试的Storage可见。

微信小程序结合Storage实现搜索历史效果

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

Javascript 相关文章推荐
javascript html 静态页面传参数
Apr 10 Javascript
javascript不可用的问题探究
Oct 01 Javascript
JavaScript中的正则表达式简明总结
Apr 04 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
Dec 27 Javascript
详解JS中的快速排序与冒泡
Jan 10 Javascript
完美实现js选项卡切换效果(一)
Mar 08 Javascript
JS设置随机出现2个数字的实例代码
Jul 19 Javascript
微信小程序中post方法与get方法的封装
Sep 26 Javascript
js删除数组中的元素delete和splice的区别详解
Feb 03 Javascript
微信小程序拍照和摄像功能实现方法示例
Feb 01 Javascript
详解Vue.js中引入图片路径的几种方式
Jun 17 Javascript
vue.js click点击事件获取当前元素对象的操作
Aug 07 Javascript
Fetch超时设置与终止请求详解
May 18 #Javascript
微信小程序实现搜索历史功能
Mar 26 #Javascript
微信小程序云开发修改云数据库中的数据方法
May 18 #Javascript
小程序云开发教程如何使用云函数实现点赞功能
May 18 #Javascript
微信小程序实现元素渐入渐出动画效果封装方法
May 18 #Javascript
微信小程序收货地址API兼容低版本解决方法
May 18 #Javascript
小程序云开发获取不到数据库记录的解决方法
May 18 #Javascript
You might like
php递归创建和删除文件夹的代码小结
2012/04/13 PHP
在jQuery ajax中按钮button和submit的区别分析
2012/10/07 Javascript
放弃用你的InnerHTML来输出HTML吧 jQuery Tmpl不详细讲解
2013/04/20 Javascript
现如今最流行的JavaScript代码规范
2014/03/08 Javascript
js获取窗口相对于屏幕左边和上边的位置坐标
2014/05/15 Javascript
jquery+css实现绚丽的横向二级下拉菜单-附源码下载
2015/08/23 Javascript
实例详解Nodejs 保存 payload 发送过来的文件
2016/01/14 NodeJs
js中遍历Map对象的简单实例
2016/08/08 Javascript
JS实现的随机排序功能算法示例
2017/06/09 Javascript
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
electron制作仿制qq聊天界面的示例代码
2018/11/26 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
2019/05/24 Javascript
js实现中文实时时钟
2020/01/15 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
Nuxt默认模板、默认布局和自定义错误页面的实现
2020/05/11 Javascript
[00:35]2016完美“圣”典风云人物:冷冷宣传片
2016/12/08 DOTA
python算法学习之计数排序实例
2013/12/18 Python
python自定义解析简单xml格式文件的方法
2015/05/11 Python
python中requests小技巧
2017/05/10 Python
Python 实现数据库更新脚本的生成方法
2017/07/09 Python
浅谈Python中的私有变量
2018/02/28 Python
Python实现的多叉树寻找最短路径算法示例
2018/07/30 Python
python集合是否可变总结
2019/06/20 Python
PyTorch中的padding(边缘填充)操作方式
2020/01/03 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
德国童装购物网站:NICKI´S.com
2018/04/20 全球购物
万宝龙英国官网:Montblanc手表、书写工具、皮革和珠宝
2018/10/16 全球购物
高中军训感想800字
2014/02/23 职场文书
论文诚信承诺书
2014/05/23 职场文书
运动会宣传口号
2014/06/09 职场文书
完整版商业计划书
2014/09/15 职场文书
二年级学生期末评语
2014/12/26 职场文书
就业意向书范本
2015/05/11 职场文书
Qt自定义Plot实现曲线绘制的详细过程
2021/11/02 Python
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript
python 判断字符串当中是否包含字符(str.contain)
2022/06/01 Python