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

yizhihongxing

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

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的计时器对象做一个简单的介绍和说明。 定时器的种类 在JavaScript中,定时器分为两种:Interval 和 Timeout。两者的作用是可以做指定的操作,不同之处在…

    JavaScript 2023年5月27日
    00
  • JavaScript使用setInterval()函数实现简单轮询操作的方法

    下面是JavaScript使用setInterval()函数实现简单轮询操作的方法的详细攻略。 什么是轮询? 轮询是指在一定时间间隔内不断查询某个状态的变化情况,以便及时的获取最新的状态信息。在Web开发中,轮询通常用于不断更新页面上的数据,例如:社交网络、股票行情等。 在JavaScript中,我们可以使用setInterval()函数来实现轮询功能。 s…

    JavaScript 2023年6月11日
    00
  • JavaScript中也使用$美元符号来代替document.getElementById

    在JavaScript中,我们常常会使用到document对象来访问HTML元素。比如,要获取id为”myElement”的元素,可以使用document对象中的getElementById方法来获取该元素: var myElement = document.getElementById("myElement"); 这种方式非常的常见,但…

    JavaScript 2023年6月10日
    00
  • JS 密码强度校验的正则表达式(简单且好用)

    下面是详细讲解“JS 密码强度校验的正则表达式(简单且好用)”的完整攻略。 1. 背景和需求 现在几乎所有的网站都需要用户进行注册和登录操作,为了保障用户账号的安全,往往都需要在密码设置时进行一定的限制和校验,例如要求密码长度不少于6位,必须包含数字、字母和特殊字符等。 这时候,就可以使用正则表达式来进行密码强度的校验。而在实际应用中,可以针对不同的强度要求…

    JavaScript 2023年6月10日
    00
  • 用显卡加速,轻松把笔记本打造成取暖器的办法!

    使用显卡加速操作是一种常用的提高电脑运行效率的方法。但是如果操作不当可能会导致电脑温度过高,甚至成为取暖器。以下是几个从硬件和软件方面提高显卡性能的方法。 1. 更换散热器 现今笔记本电脑的散热系统造型多以超薄为设计,无法完全承受显卡功耗的高温状态。如果你打算长时间将笔记本打造成为取暖器,那么更换强劲散热器是必不可少的。 笔记本电脑的散热器大小都是普遍的,因…

    JavaScript 2023年5月28日
    00
  • 分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容

    这里是分享自定义的console类让JS调试代码更方便的攻略: 1. 创建一个自定义的Console类 创建一个可以封装原生console使其在不同浏览器环境下具有兼容性的类,示例代码如下: class CustomConsole { constructor() { this.logHistory = []; this.registerConsoleMeth…

    JavaScript 2023年6月11日
    00
  • 详解vue2.0+vue-video-player实现hls播放全过程

    详解vue2.0+vue-video-player实现hls播放全过程 前言 在本文中,我们将会详细讲解如何在Vue 2.0框架下通过vue-video-player插件来实现HLS流媒体的播放,并且将所有的实现细节都展示给读者。在接下来的过程中,我们将会使用两个示例来讲解这个过程。 安装 首先,我们需要将vue-video-player插件引入我们的Vue…

    JavaScript 2023年6月11日
    00
  • javascript getElementsByClassName 和js取地址栏参数

    下面分别详细讲解一下”javascript getElementsByClassName”和”js取地址栏参数”。 Javascript getElementsByClassName getElementsByClassName() 是 javascript DOM API 的一部分,该 API 允许开发者通过 class name 查找文档中的 DOM 元…

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