微信小程序结合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 文档的编码问题解决
Mar 01 Javascript
jquery iframe操作详细解析
Nov 20 Javascript
JavaScript中的style.cssText使用教程
Nov 06 Javascript
jquery中change()用法实例分析
Feb 06 Javascript
jQuery选择器源码解读(三):tokenize方法
Mar 31 Javascript
JS动态修改iframe内嵌网页地址的方法
Apr 01 Javascript
在JavaScript中如何解决用execCommand(
Oct 19 Javascript
javascript实现无缝上下滚动特效
Dec 16 Javascript
js cookie实现记住密码功能
Jan 17 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
Aug 27 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
Feb 11 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
Mar 24 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中逗号与点号的区别
2013/08/05 PHP
PHP中使用sleep造成mysql读取失败的案例和解决方法
2014/08/21 PHP
Symfony2之session与cookie用法小结
2016/03/18 PHP
ThinkPHP5 的简单搭建和使用详解
2018/11/15 PHP
addRule在firefox下的兼容写法
2006/11/30 Javascript
JavaScript的目的分析
2007/01/05 Javascript
document.documentElement的一些使用技巧
2013/04/18 Javascript
如何使用jQuery Draggable和Droppable实现拖拽功能
2013/07/05 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
jQuery实现表单提交时判断的方法
2014/12/13 Javascript
浅谈javascript对象模型和function对象
2014/12/26 Javascript
JavaScript中文件上传API详解
2016/04/01 Javascript
javascript表单事件处理方法详解
2016/05/15 Javascript
详解IWinter 一个路由转控制器的 Nodejs 库
2017/11/15 NodeJs
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
JavaScript深拷贝和浅拷贝概念与用法实例分析
2018/06/07 Javascript
Vue.js中对css的操作(修改)具体方式详解
2018/10/30 Javascript
electron中使用bootstrap的示例代码
2018/11/06 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
[01:08:56]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第一场 2月7日
2021/03/11 DOTA
python 编程之twisted详解及简单实例
2017/01/28 Python
在python中只选取列表中某一纵列的方法
2018/11/28 Python
python Django中models进行模糊查询的示例
2019/07/18 Python
python的range和linspace使用详解
2019/11/27 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
2020/01/13 Python
Django CSRF认证的几种解决方案
2020/03/03 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
2021/02/01 Python
TensorFlow低版本代码自动升级为1.0版本
2021/02/20 Python
金宝贝童装官网:Gymboree
2016/08/31 全球购物
触发器(trigger)的功能都有哪些?写出一个触发器的例子
2012/09/17 面试题
感恩父母的演讲稿
2014/05/06 职场文书
清明节演讲稿
2014/05/27 职场文书
中学生旷课检讨书2篇
2014/10/09 职场文书
高考作弊检讨书1500字
2015/02/16 职场文书
学校会议通知范文
2015/04/15 职场文书
Qt数据库应用之实现图片转pdf
2022/06/01 Java/Android