微信小程序结合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学习笔记 delete运算符
Sep 13 Javascript
基于JQuery 选择器使用说明介绍
Apr 18 Javascript
js 获取和设置css3 属性值的实现方法
May 06 Javascript
使用js检测浏览器的实现代码
May 14 Javascript
js常用数组操作方法简明总结
Jun 20 Javascript
JavaScript各类型的关系图解
Oct 16 Javascript
javascript每日必学之循环
Feb 19 Javascript
原生ajax处理json格式数据的实例代码
Dec 25 Javascript
js实现文字选中分享功能
Jan 25 Javascript
详解如何构建Angular项目目录结构
Jul 13 Javascript
Vue.js@2.6.10更新内置错误处机制Fundebug同步支持相应错误监控
May 13 Javascript
8个JS的reduce使用实例和reduce操作方式
Oct 05 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
抓取YAHOO股票报价的类
2009/05/15 PHP
php str_pad 函数用法简介
2009/07/11 PHP
一些php技巧与注意事项分析
2011/02/03 PHP
实例讲解php数据访问
2016/05/09 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
2017/01/30 PHP
THINKPHP截取中文字符串函数实例代码
2017/03/20 PHP
Phpstorm+Xdebug断点调试PHP的方法
2018/05/14 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
JavaScript-世界上误解最深的语言分析
2007/08/12 Javascript
使用apply方法实现javascript中的对象继承
2013/12/16 Javascript
input标签内容改变的触发事件介绍
2014/06/18 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
JavaScript 中 avalon绑定属性总结
2016/10/19 Javascript
vue-router 权限控制的示例代码
2017/09/21 Javascript
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
详解Vue-cli webpack移动端自动化构建rem问题
2018/04/07 Javascript
JavaScript使用prototype原型实现的封装继承多态示例
2018/08/31 Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
javascript实现函数柯里化与反柯里化过程解析
2019/10/08 Javascript
[01:11:48]Fnatic vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
【Python】Python的urllib模块、urllib2模块批量进行网页下载文件
2016/11/19 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
2018/02/11 Python
python3爬虫之设计签名小程序
2018/06/19 Python
python读取文本绘制动态速度曲线
2018/06/21 Python
python 剪切移动文件的实现代码
2018/08/02 Python
Python如何存储数据到json文件
2020/03/09 Python
python构造IP报文实例
2020/05/05 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
Java如何调用外部Exe程序
2015/07/04 面试题
音乐表演专业毕业生求职信
2013/10/14 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
单位租房协议书范本
2014/12/04 职场文书
党员个人党性分析材料
2014/12/18 职场文书
js中Object.create实例用法详解
2021/10/05 Javascript
通过Python把学姐照片做成拼图游戏
2022/02/15 Python