微信小程序结合Storage实现搜索历史效果
程序员文章站
2023-11-28 13:47:28
本文实例为大家分享了微信小程序实现搜索历史效果的具体代码,供大家参考,具体内容如下
实现目标
代码实现
集合wx.setstoragesync()和wx.gets...
本文实例为大家分享了微信小程序实现搜索历史效果的具体代码,供大家参考,具体内容如下
实现目标
代码实现
集合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可见。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: nginx做负载CDN加速获取端真实ip
下一篇: 三伏天又闷又热 智米这两招让你瞬间舒适