微信小程序结合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 相关文章推荐
在chrome中window.onload事件的一些问题
Mar 01 Javascript
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
Jul 10 Javascript
Jquery插件easyUi表单验证提交(示例代码)
Dec 30 Javascript
JavaScript基础教程——入门必看篇
May 20 Javascript
angularjs 源码解析之injector
Aug 22 Javascript
JavaScript类的写法
Sep 17 Javascript
利用jqprint插件打印页面内容的实现方法
Jan 09 Javascript
Angular利用内容投射向组件输入ngForOf模板的方法
Mar 05 Javascript
Vue中如何实现proxy代理
Apr 20 Javascript
实例详解Node.js 函数
Jun 10 Javascript
layer关闭当前窗口页面以及确认取消按钮的方法
Sep 09 Javascript
javascript实现前端分页功能
Nov 26 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
动漫女神老婆无限好,但日本女生可能就不是这么一回事了!
2020/03/04 日漫
PHP的preg_match匹配字符串长度问题解决方法
2014/05/03 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
破解Session cookie的方法
2006/07/28 Javascript
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
javascript函数作用域学习示例(js作用域)
2014/01/13 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
2016/01/06 Javascript
详谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/25 Javascript
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
js代码规范之Eslint安装与配置详解
2018/09/08 Javascript
使用webpack搭建vue环境的教程详解
2019/12/31 Javascript
Vue-resource安装过程及使用方法解析
2020/07/21 Javascript
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
Python中Django框架下的staticfiles使用简介
2015/05/30 Python
django rest framework之请求与响应(详解)
2017/11/06 Python
python实现自动发送邮件
2018/06/20 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
2018/10/14 Python
Python通用循环的构造方法实例分析
2018/12/19 Python
Python实现的栈、队列、文件目录遍历操作示例
2019/05/06 Python
Django自带的用户验证系统实现
2020/12/18 Python
纯css3实现效果超级炫的checkbox复选框和radio单选框
2014/09/01 HTML / CSS
css3 中的新特性加强记忆详解
2016/04/16 HTML / CSS
苹果中国官方网站:Apple中国
2016/07/22 全球购物
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
奥斯汀独木舟和皮划艇:Austin Canoe & Kayak
2018/05/22 全球购物
Muziker英国:中欧最大的音乐家商店
2020/02/05 全球购物
学习党章思想汇报
2014/01/07 职场文书
酒店值班经理的工作职责范本
2014/02/18 职场文书
3分钟英语演讲稿
2014/04/29 职场文书
2014年入党积极分子学习三中全会思想汇报
2014/09/13 职场文书
2015年乡镇统计工作总结
2015/04/22 职场文书
初二数学教学反思
2016/02/17 职场文书
情况说明书格式及范文
2019/06/24 职场文书
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
2021/04/06 Oracle
详解Java实践之抽象工厂模式
2021/06/18 Java/Android
《宝可梦》动画制作25周年到来 官方发布特别纪念视频
2022/04/01 日漫