微信小程序结合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 相关文章推荐
jquery改变disabled的boolean状态的三种方法
Dec 13 Javascript
js实现身份证号码验证的简单实例
Feb 19 Javascript
vue仿淘宝订单状态的tab切换效果
Jun 23 Javascript
浅析JavaScript中的特殊数据类型
Dec 15 Javascript
React教程之封装一个Portal可复用组件的方法
Jan 02 Javascript
详解ajax的data参数错误导致页面崩溃
Apr 30 Javascript
JavaScript使用类似break机制中断forEach循环的方法
Nov 13 Javascript
layer弹出层自定义提交取消按钮的例子
Sep 10 Javascript
JS中的模糊查询功能
Dec 08 Javascript
TypeScript 引用资源文件后提示找不到的异常处理技巧
Jul 15 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
Sep 02 Javascript
vue监听滚动事件的方法
Dec 21 Vue.js
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生成局部唯一识别码LUID的代码
2012/10/06 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
2014/11/14 PHP
PHP正则表达式之捕获组与非捕获组
2015/11/06 PHP
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
JQUERY CHECKBOX全选,取消全选,反选方法三
2008/08/30 Javascript
JavaScript中使用Substring删除字符串最后一个字符
2013/11/03 Javascript
javascript设计模式--策略模式之输入验证
2015/11/27 Javascript
JavaScript中的继承之类继承
2016/05/01 Javascript
Angular的MVC和作用域
2016/12/26 Javascript
浅谈Angular2 ng-content 指令在组件中嵌入内容
2017/08/18 Javascript
快速解决vue-cli不能初始化webpack模板的问题
2018/03/20 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
详解为element-ui的Select和Cascader添加弹层底部操作按钮
2020/02/07 Javascript
jQuery实现点击滚动到指定元素上的方法分析
2020/03/19 jQuery
解决vue做详情页跳转的时候使用created方法 数据不会更新问题
2020/07/24 Javascript
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
[41:52]2018DOTA2亚洲邀请赛3月29日 小组赛A组 TNC VS OpTic
2018/03/30 DOTA
Python中用Descriptor实现类级属性(Property)详解
2014/09/18 Python
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
python使用wmi模块获取windows下的系统信息 监控系统
2015/10/27 Python
Python中的数学运算操作符使用进阶
2016/06/20 Python
django 开发忘记密码通过邮箱找回功能示例
2018/04/17 Python
Django中多种重定向方法使用详解
2019/07/17 Python
django 使用 PIL 压缩图片的例子
2019/08/16 Python
Python单元测试与测试用例简析
2019/11/09 Python
python字符串反转的四种方法详解
2019/12/02 Python
Python实现密码薄文件读写操作
2019/12/16 Python
python爬虫筛选工作实例讲解
2020/11/23 Python
python中操作文件的模块的方法总结
2021/02/04 Python
男女时尚与复古风格在线购物:RoseGal(全球免费送货)
2017/07/19 全球购物
大学新生军训个人的自我评价
2013/10/03 职场文书
音乐专业应届生教师求职信
2013/11/04 职场文书
翻译专业应届生求职信
2013/11/23 职场文书
办公室文员自荐书
2014/02/03 职场文书
导游词之西安骊山
2019/12/20 职场文书
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android