微信小程序结合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 相关文章推荐
div+css布局的图片连续滚动js实现代码
May 04 Javascript
5个最佳的Javascript日期处理类库分享
Apr 15 Javascript
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
Jul 25 Javascript
你必须知道的Javascript知识点之&quot;单线程事件驱动&quot;的使用
Apr 23 Javascript
js控制不同的时间段显示不同的css样式的实例代码
Nov 04 Javascript
JS实现鼠标单击与双击事件共存
Mar 08 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
Sep 24 Javascript
JavaScript动态创建div等元素实例讲解
Jan 06 Javascript
jQuery实现邮箱下拉列表自动补全功能
Sep 08 Javascript
使用Vue开发一个实时性时间转换指令
Jan 17 Javascript
js jquery 获取某一元素到浏览器顶端的距离实现方法
Sep 05 jQuery
Javascript读写cookie的实例源码
Mar 16 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中使用PDF文档功能
2006/10/09 PHP
PHP可逆加密/解密函数分享
2012/09/25 PHP
2014过年倒计时示例
2014/01/31 PHP
从零开始学YII2框架(六)高级应用程序模板
2014/08/20 PHP
php文件夹的创建与删除方法
2015/01/24 PHP
PHP支付系统设计与典型案例分享
2016/08/02 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
深入解析Laravel5.5中的包自动发现Package Auto Discovery
2017/09/13 PHP
PHP chr()函数讲解
2019/02/11 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2007/02/15 Javascript
使用javascript获取flash加载的百分比的实现代码
2011/05/25 Javascript
基于jquery ajax 用户无刷新登录方法详解
2012/04/28 Javascript
js 去掉空格实例 Trim() LTrim() RTrim()
2014/01/07 Javascript
javascript实现回到顶部特效
2015/05/06 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
jQuery实现批量判断表单中文本框非空的方法(2种方法)
2015/12/09 Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
2016/02/03 Javascript
理解Angular的providers给Http添加默认headers
2017/07/04 Javascript
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
详解vue使用vue-layer-mobile组件实现toast,loading效果
2018/08/31 Javascript
JSONP 的原理、理解 与 实例分析
2020/05/16 Javascript
Node.js API详解之 net模块实例分析
2020/05/18 Javascript
[01:56]生活中的妖精之七夕特别档
2016/08/09 DOTA
python实现机器学习之多元线性回归
2018/09/06 Python
python实现简单flappy bird
2018/12/24 Python
python conda操作方法
2019/09/11 Python
Python如何实现感知器的逻辑电路
2020/12/25 Python
CSS3制作精致的照片墙特效
2016/06/07 HTML / CSS
美国时尚配饰品牌:Dooney & Bourke
2017/11/14 全球购物
销售工作岗位职责
2013/12/24 职场文书
《水乡歌》教学反思
2014/04/24 职场文书
团代会闭幕词
2015/01/28 职场文书
唐山大地震的观后感
2015/06/05 职场文书
工作感言一句话
2015/08/01 职场文书
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
2022/04/20 Python
如何使用python包中的sched事件调度器
2022/04/30 Python