微信小程序实现历史搜索功能的全过程(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是一门广泛使用的编程语言,数组是一种常见的数据类型,在JavaScript中有很多数组方法可以方便地操作数组。然而,有时候JavaScript数组方法会被错误使用,本文将介绍一些错误使用的例子,并给出正确的使用方法。 1. 错误使用数组方法的示例一:使用splice方法删除数组元素 splice()方法是用来删除、插入或替换数组元素的。然…

    JavaScript 2023年5月27日
    00
  • JavaScript中的连字符详解

    JavaScript中的连字符详解 什么是连字符 在JavaScript中,连字符是由破折号(-)组成的标识符,它也被称为短横线或减号。在 HTML 和 CSS 中,连字符也经常被使用。在 JavaScript 中,我们可以使用连字符作为变量名、函数名或方法名。 连字符的命名规则 在 JavaScript 中,连字符可以出现在变量名、函数名或方法名中,但是我…

    JavaScript 2023年5月28日
    00
  • JavaScript中的this/call/apply/bind的使用及区别

    JavaScript中的this/call/apply/bind的使用及区别 在JavaScript中,this/call/apply/bind是常见的用于改变函数执行上下文以及参数传递的方法。虽然它们都有相似的作用,但使用方法与特性却有所不同。接下来,我们将一一详细介绍它们的用法和区别。 this this是JavaScript中非常常见的关键字,它用于引…

    JavaScript 2023年6月10日
    00
  • vue3获取当前路由地址的两种方法

    下面是具体的攻略: Vue3获取当前路由地址的两种方法 在Vue3中,我们可以使用两种方法来获取当前路由地址,分别是使用$route对象和使用useRoute函数。下面我们将介绍这两种方法,以及如何使用它们来获取当前路由地址。 使用$route对象获取当前路由地址 在Vue3中,我们可以使用$route对象来获取当前路由地址。$route对象是Vue Rou…

    JavaScript 2023年6月11日
    00
  • JavaScript字符串对象slice方法入门实例(用于字符串截取)

    JavaScript字符串对象slice方法入门实例 在JavaScript中,字符串对象是非常常用的数据类型,其内置的方法也非常丰富。其中一个方法就是slice()方法,这个方法可以用于截取字符串,下面就来详细讲解如何使用slice方法。 什么是slice方法? 我们先来看看slice方法的定义: String.slice(beginIndex[, end…

    JavaScript 2023年5月28日
    00
  • 总结JavaScript三种数据存储方式之间的区别

    当我们开发基于 JavaScript 的应用程序时,我们需要考虑如何在应用程序中存储数据。JavaScript 中有很多种数据存储方式,本文将介绍三种最常用的数据存储方式,包括: Cookie Web 存储(LocalStorage 和 SessionStorage) IndexedDB Cookie Cookie 是最早的 Web 储存技术之一,可以通过 …

    JavaScript 2023年6月11日
    00
  • javascript将url解析为json格式的两种方法

    当我们需要将 URL 解析为 JSON 格式时,有两种主要的方法可供选择: 方法一:手动解析 URL 字符串 步骤如下: 从 URL 字符串中提取出查询字符串部分(即由 “?” 后面的所有内容组成的字符串); 将查询字符串使用 “&” 和 “=” 进行分隔,封装成键值对的形式; 使用 Javascript 对象字面量语法创建 JSON 对象。 代码示…

    JavaScript 2023年5月27日
    00
  • JS数组进阶示例【数组的几种函数用法】

    JS数组进阶示例【数组的几种函数用法】是一个关于JavaScript数组的进阶教程。本教程主要介绍了数组的一些常用函数用法,可以帮助读者更好地理解和运用JavaScript数组。 目录 map()函数 reduce()函数 filter()函数 示例教程1:统计颜色 示例教程2:计算平均分 map()函数 map()函数是一种用于处理数组元素的函数,它会将数…

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