微信小程序实现历史搜索功能的全过程(h5同理)

好的!微信小程序实现历史搜索功能的全过程可以分为以下几个步骤:

1. 提供搜索框和搜索按钮

首先,在小程序页面中提供搜索框和搜索按钮。可以使用<input>元素和<button>元素实现。

<!-- 在 wxml 文件中 -->
<view class="search-box">
  <input class="search-input" placeholder="请输入搜索内容" bindinput="onInput" value="{{ keyword }}" />
  <button class="search-btn" bindtap="onSearch">搜索</button>
</view>

/* 在 css 文件中 */
.search-box {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 10px;
}

.search-input {
  flex: 1;
  padding: 5px;
  border: 1px solid #ccc;
  border-radius: 5px;
  font-size: 14px;
}

.search-btn {
  margin-left: 10px;
  padding: 5px 10px;
  border: 1px solid #ccc;
  border-radius: 5px;
  font-size: 14px;
}

2. 将搜索关键词存储到本地

当用户输入搜索关键词并点击搜索按钮时,将关键词存储到本地,以便用户下次使用搜索功能时可以看到历史搜索记录。

可以通过wx.setStorageSync()方法将关键词存储到本地缓存中。

onSearch: function() {
  const keyword = this.data.keyword.trim();

  if (!keyword) {
    wx.showToast({
      title: '请输入搜索内容',
      icon: 'none'
    });
    return;
  }

  wx.setStorageSync('searchHistory', keyword);

  // 执行搜索操作
  this.doSearch();
}

3. 获取历史搜索记录并展示

在搜索框下方展示历史搜索记录,可以通过wx.getStorageSync()方法获取本地缓存中存储的历史搜索记录,并将记录展示在页面上。

onLoad: function() {
  const searchHistory = wx.getStorageSync('searchHistory') || [];

  this.setData({
    searchHistory
  });
}

<!-- 在 wxml 文件中 -->
<view class="history">
  <view class="history-title">历史搜索</view>
  <view class="history-list">
    <block wx:for="{{ searchHistory }}" wx:key="index">
      <text class="history-item">{{ item }}</text>
    </block>
  </view>
</view>

/* 在 css 文件中 */
.history {
  margin-top: 20px;
}

.history-title {
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 10px;
}

.history-list {
  display: flex;
  flex-wrap: wrap;
}

.history-item {
  padding: 5px 10px;
  margin-right: 10px;
  margin-bottom: 10px;
  background-color: #f2f2f2;
  border-radius: 5px;
  font-size: 14px;
}

示例1:搜索关键字存储

假如用户在搜索框中输入了关键词微信小程序,点击搜索按钮后,将该关键词存储到本地缓存中。

onSearch: function() {
  const keyword = this.data.keyword.trim();

  if (!keyword) {
    wx.showToast({
      title: '请输入搜索内容',
      icon: 'none'
    });
    return;
  }

  wx.setStorageSync('searchHistory', keyword);

  // 执行搜索操作
  this.doSearch();
}

示例2:清空历史搜索记录

假如用户想要清空历史搜索记录,可以添加一个clearHistory方法,将本地缓存中的历史搜索记录清空,并刷新页面展示。

clearHistory: function () {
  wx.removeStorageSync('searchHistory');
  this.setData({
    searchHistory: []
  });
}

<!-- 在 wxml 文件中 -->
<view class="history-operate">
  <text class="clear-btn" bindtap="clearHistory">清空历史记录</text>
</view>

/* 在 css 文件中 */
.history-operate {
  display: flex;
  justify-content: flex-end;
  margin-top: 10px;
}

.clear-btn {
  padding: 5px 10px;
  border: 1px solid #ccc;
  border-radius: 5px;
  font-size: 14px;
  color: #666;
  user-select: none;
}

至此,微信小程序实现历史搜索功能的全过程就介绍完了。同样的,以上代码在 H5 端同样适用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:微信小程序实现历史搜索功能的全过程(h5同理) - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • Javascript 倒计时源代码.(时.分.秒) 详细注释版

    我来为你详细讲解“JavaScript 倒计时源代码(时.分.秒)详细注释版”的完整攻略。该源代码可以实现一个简单的倒计时功能,以时分秒的形式展示倒计时剩余时间。 首先,我们需要在 HTML 页面中创建对应的元素来显示倒计时。例如,我们可以使用以下代码: <div id="countdown"></div> 接着,…

    JavaScript 2023年5月27日
    00
  • discuz中用到的javascript函数解析 原创第2/2页

    下面就是对于“discuz中用到的javascript函数解析 原创第2/2页”的完整攻略: 1. 概述 该文章介绍了 discuz 论坛中常用的 JavaScript 函数解析,主要包括 Ajax 交互、 DOM 操作以及事件处理等。 2. Ajax 交互 2.1 Ajax.call() 该函数用于发送 Ajax 请求,并接收服务器返回的 JSON 格式数…

    JavaScript 2023年6月10日
    00
  • javascript实现手机震动API代码

    很好,下面是详细讲解 JavaScript 实现手机震动 API 代码的完整攻略: 1. 确认浏览器支持性 首先需要确认浏览器是否支持 Vibration API(震动 API)。可以通过以下代码来检测: // 判断浏览器是否支持 Vibration API(震动 API) if ("vibrate" in navigator) { co…

    JavaScript 2023年6月11日
    00
  • 解决js函数闭包内存泄露问题的办法

    JS函数闭包内存泄露指在函数内部使用了外部定义的变量,并把该函数作为变量的返回值时,这个函数的作用域链会把外部函数的活动对象引用计数加1,导致闭包函数中的所有变量都无法被垃圾回收机制回收,造成内存泄露。 下面介绍两种解决JS函数闭包内存泄露问题的办法。 方法一: 及时释放引用 在函数内部定义变量时,可以使用let或const关键字替代var来声明变量,因为l…

    JavaScript 2023年6月10日
    00
  • 为JS扩展Array.prototype.indexOf引发的问题探讨及解决

    我会详细讲解“为JS扩展Array.prototype.indexOf引发的问题探讨及解决”的完整攻略。以下是具体的步骤: 1.问题描述 在JS中,Array.prototype.indexOf()方法用于查找元素在数组中的位置,如果存在,就返回它的下标。但是,有一些开发者会通过扩展Array.prototype.indexOf()方法的方式来添加一些自定义…

    JavaScript 2023年6月11日
    00
  • JavaScript仿京东实现秒杀倒计时案例详解

    下面是关于“JavaScript仿京东实现秒杀倒计时案例详解”的完整攻略。 1. 准备工作 在开始仿京东实现秒杀倒计时案例之前,我们需要做一些准备工作。具体如下: 在HTML文件中引入所需的CSS文件和JavaScript文件; 创建一个用于显示倒计时的HTML标签,并设置其id属性; 在JavaScript文件中获取该HTML标签的id属性值,利用docu…

    JavaScript 2023年6月11日
    00
  • JavaScript的数据类型转换原则(干货)

    JavaScript的数据类型转换原则(干货) 1. 数据类型转换的基本原则 在JavaScript中,我们经常需要将不同类型的数据进行转换,特别是在进行运算、比较和赋值等操作的时候。因此,了解数据类型转换的基本原则对于编写高质量的JavaScript代码是非常重要的。 1.1. 隐式类型转换 JavaScript中有两种类型转换方式:显式类型转换和隐式类型…

    JavaScript 2023年5月28日
    00
  • JavaScript中的this基本问题实例小结

    当在JavaScript语言中使用关键字this时,它指向的是当前执行代码的对象。而谁才是当前执行代码的对象,这是本文要探讨的关键问题。 1. 全局上下文中的this 在全局上下文中,this关键字指向的是全局对象。在浏览器中,全局对象是window对象,故在浏览器中,this指向window对象。 console.log(this === window);…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部