博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
页面缓存的操作(搜索历史记录),页面搜索功能实现
阅读量:6448 次
发布时间:2019-06-23

本文共 4266 字,大约阅读时间需要 14 分钟。

搜索与显示历史记录功能的实现

需求

完成一次搜索记录一次搜索,以后进入搜索页面会显示搜索历史,点击删除小图标会清空所有缓存

分割功能需求

主要分割为这几个步骤:

  1. 进入搜索后判断缓存中是否有值,如果没有缓存,隐藏历史记录跟小图标,如果有缓存,加载缓存,将缓存的内容加载进预先制作的显示容器中,并且在上方显示历史记录跟小图标;
  2. 输入值后,点击完成,判断是否有搜索结果,如果有,保存搜索记录,放进缓存,并且显示搜索结果,此时需要隐藏历史记录的container,隐藏完成按钮,上方的搜索框的长度变长,显示结果的container,并且input框中的值为不变,保存在input框中,没有就返回空
  3. 删除缓存

第一步

实现:

onLoad: function (options) {    const inputValue = options.inputValue;    if (wx.getStorageSync('searchData') == '') {      this.setData({        isHide: true,        isCover: true,      })    } else {      this.setData({        inputValue: inputValue,        confirm: '完成',        sercherStorage: wx.getStorageSync('searchData') || [],        isHide: false,        isShow: true      })    }    },

效果:

clipboard.png


第二步

实现:

changeValue(e) {    let inputValue = e.detail.value;    if (inputValue == '') {      this.setData({        confirm: '取消',        isConfirm: false,        isHide:false, //显示历史记录container        width: '85%',        isShow: true,  //显示图标以及标签栏          isCover:true //隐藏搜索结果的container      })    } else {      this.setData({        confirm: '完成',        inputValue: inputValue      })    }  },//监听输入  confirmValue(e) {    let value = this.data.inputValue;//获取输入值    if (this.data.confirm === '完成') {      let result = [];      for (let i in jobList) {        if (jobList[i].jobName.indexOf(value) >= 0){          result.push(jobList[i]);          this.setData({            result          })        }        if(this.data.result.length == 0) {                wx.showToast({            title: '未找到数据',          });          this.setData({            isConfirm: false,            isHide: false          })        }      }//搜索数据匹配               // 第二种搜索方法 正则匹配      // let result=[];      // let reg=new RegExp(value);      // for(var i=0;i

效果:

clipboard.png


第三步

clearStorage(e) {    wx.clearStorageSync('searchData');//清除缓存    wx.showModal({      title: '提示',      content: '确定删除全部历史记录?',      success: (res) => {        if (res.confirm) {          this.setData({            sercherStorage: [],            isShow: false          })        } else if (res.cancel) {          return false;        }      }    })  },

完整代码

wxml:

{
{confirm}}
历史搜索
{
{item.name}}

wxss:

page {    margin: 0;    padding: 0;}.searchContainer {    position: relative;    width: 100%;    height: 100rpx;    border-bottom: 8rpx solid #fbfbfb;    margin-left: 20rpx;}.search {    position: relative;    margin-top: 20rpx;    width: 85%;    height: 60rpx;    border: 3rpx solid #e8e8e8;    border-radius: 80rpx 80rpx 80rpx 80rpx;    float: left;}.searchInput {    position: absolute;    left: 65rpx;    top: 5rpx;    font-size: 15px;    color: #323230;}.searchImg {    position: absolute;    left: 26rpx;    top: 12rpx;    width: 35rpx;    height: 35rpx;}.cancleSearch {    position: absolute;    right: 0;    width: 126rpx;    height: 100rpx;    line-height: 100rpx;    text-align: center;    font-size: 15px;    color: #323232;}.hide {    display: none;}.history {    float: left;    position: relative;    height: 100%;    width: 100%;}.history-header {    float: left;    position: relative;    height: 110rpx;    width: 100%;}.title {    position: absolute;    font-size: 13px;    color: #313131;    left: 7rpx;    top: 38rpx;}.delectHistory {    position: absolute;    width: 30rpx;    height: 30rpx;    top: 43rpx;    right: 57rpx;}.history-content {    display: flex;    flex-direction: row;    justify-content: space-around;    align-items: space-around;    flex-wrap: wrap;    margin-right: 50rpx;    height: 100%;    width: 650rpx;}.content {    font-size: 13px;    max-width: 400rpx; //缓存显示最大宽度    margin-top: 20rpx;    padding-left: 15rpx;    padding-right: 15rpx;    height: 50rpx;    line-height: 50rpx;    color: #757575;    text-align: center;    border-radius: 50rpx;    background-color: #f8f9fb;    overflow: hidden;    text-overflow: ellipsis; //文本超出400rpx的后面的内容用省略号代替    white-space: nowrap;    letter-spacing: 1px;}

最后

转载地址:http://yelwo.baihongyu.com/

你可能感兴趣的文章
转:如何将 Java 项目转换成 Maven 项目
查看>>
YACEP相关技术工具服务技巧(上)
查看>>
《AngularJS开发下一代Web应用》读书笔记与感想
查看>>
URAL 2034 Caravans(变态最短路)
查看>>
正向代理到指定泛域名的nginx配置
查看>>
mac版微信web开发者工具(小程序开发工具)无法显示二维码 解决方案
查看>>
wordcloud + jieba 生成词云
查看>>
关于“代码规范”,“Review”和“Check list”
查看>>
Xcode导入第三方库图文
查看>>
第八章 函数
查看>>
MySQL快速入门
查看>>
个人vim配置
查看>>
Ubuntu 14.04 mame sound fix
查看>>
修改mysql的root密码
查看>>
Spring Boot系列——如何集成Log4j2
查看>>
对称加密实现重要日志上报Openresty接口服务
查看>>
10. Regular Expression Matching
查看>>
C# 实现天气预报
查看>>
ios中键盘处理(二)
查看>>
从1.5k到18k, 一个程序员的5年成长之路
查看>>