搜索功能是app,小程序中非常常见的一个需求,作为常见的需求,如何高效地完成该需求的实现,就异常关键。那么小程序中如何从0到1实现搜索功能呢?请看本文

效果展示

历史记录

跳转到详情页面(详情页面开发链接https://blog.csdn.net/m0_37218227/article/details/107297203 )

搜索页wxml

<searchbar bindsearchinput="onSearchInputEvent"></searchbar><view class='history-list-group' wx:if="{{histories && !subjects}}"><view class='history-title'><view class='title'>历史记录</view><view class='clear' bindtap="onClearEvent">清除</view></view><navigator wx:for="{{histories}}" wx:key="{{item.id}}" url='/pages/detail/detail?type=movie&id={{item.id}}' class='history-group'>{{item.title}}</navigator>
</view><view class='item-list-group'><view wx:for="{{subjects}}" class='item-group' wx:key="{{item.id}}" bindtap="onItemTapEvent" data-id="{{item.id}}" data-title="{{item.title}}"><image src='{{item.pic.normal}}' class='thumbnail'></image><view class='info-group'><view class='title'>{{item.title}}</view><view class='rate-year'>{{item.rating.value}}分/{{item.year}}</view></view></view>
</view>

搜索页wxss

.item-list-group{padding: 10rpx 20rpx;
}.item-list-group .item-group{padding: 10rpx 0;border-bottom: 1px solid #e4e4e4;display: flex;
}.item-group .thumbnail{width: 80rpx;height: 100rpx;margin-right: 20rpx;
}.item-group .info-group{flex: 1;display: flex;flex-direction: column;justify-content: space-between;
}.info-group .title{font-size: 32rpx;
}.info-group .rate-year{font-size: 28rpx;color: #7b7b7b;
}.history-list-group{padding: 10rpx 20rpx;
}.history-list-group .history-title{display: flex;justify-content: space-between;padding: 20rpx 0;background: #f9f9f9;font-size: 28rpx;color: #9e9e9e;
}.history-list-group .history-group{font-size: 32rpx;padding: 20rpx 0;border-bottom: 1px solid #e4e4e4;
}

js文件

// pages/search/search.js
import {network} from "../../utils/network.js";Page({/*** 页面的初始数据*/data: {},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {var that = this;wx.getStorage({key: 'searched',success: function(res) {var data = res.data;that.setData({histories: data})},})},onSearchInputEvent: function(event){var that = this;var value = event.detail.value;if(!value || value === ""){that.setData({subjects: null});return;}network.getSearch({q: value,success: function(subjects){that.setData({subjects: subjects})}})},onItemTapEvent: function(event){var that = this;var id = event.currentTarget.dataset.id;var title = event.currentTarget.dataset.title;var histories = that.data.histories;var isExisted = false;if(histories){for(var index=0;index<=histories.length;index++){var movie = histories[index];if(movie.id === id){isExisted = true;break;}}}if(!isExisted){if(!histories){histories = [];}histories.push({title:title,id:id});wx.setStorage({key: 'searched',data: histories,success: function () {console.log("保存成功!");}})}wx.navigateTo({url: "/pages/detail/detail?type=movie&id="+id,});},onClearEvent: function(event){wx.removeStorage({key: 'searched',success: function(res) {console.log("删除成功!");},});this.setData({histories: null});}
})

【详细】小程序搜索功能实现相关推荐

  1. html打开微信搜索页,微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)...

    上效果图: 一:搜索框功能实现 1.在首页做一个搜索框的样式并实现跳转到搜索页面 搜索 .search{ width: 80%; } .search_arr { border: 1px solid # ...

  2. 微信小程序搜索功能!附:小程序前端+PHP后端

    开发需求 微信小程序已经是非常火了,而且学习也比较容易,但是对于初学者来说还是一件比较伤脑筋的事,接下来给大家分享一下小程序搜索的思路. 流程 1.表单(输入框.提交按钮.提交的name值) 2.接收 ...

  3. 微信小程序搜索功能!附:小程序前端+PHP后端 1

    开发需求 微信小程序已经是非常火了,而且学习也比较容易,但是对于初学者来说还是一件比较伤脑筋的事,接下来给大家分享一下小程序搜索的思路. 流程 1.表单(输入框.提交按钮.提交的name值) 2.接收 ...

  4. 微信小程序搜索功能系列 一套全

    今天说一下小程序首页的搜索功能吧 这个搜索功能我是建了一个组件,用组件写的: 上代码: wxml代码 <view class="search"><input pl ...

  5. 微信小程序---搜索功能并跳转搜索结果页面

    搜索页面: search.wxml页面: <view class="form"><input class="searchInput" valu ...

  6. 微信小程序搜索功能的实现(模糊搜索、带历史记录)

    搜索页wxml <searchbar bindsearchinput="onSearchInputEvent"></searchbar> <view ...

  7. 小程序搜索功能的实现

    搜索页面(receiveCenter.wxss) <view class="search"><view class="search_arlet" ...

  8. 微信小程序搜索功能实现

    js const config = require('../../utils/config.js') //获取应用实例 const app = getApp()Page({data: {search: ...

  9. 5分钟搞定微信小程序搜索功能

    一.废话不多说,先看效果: 附赠一个时间选择器: 看了效果图,当然要看看如何敲代码实现了~ 二.代码附上: 1.目录结构 2.全部代码: app.js //app.js App({globalData ...

最新文章

  1. synchronized 和 volatile 关键字的作用
  2. linux开发工具之gcc
  3. vue学习之二ECMAScript6标准
  4. mysql获取一个表的数据作为值插入_请问如何在mysql中得到一个即将插入数据表中的那条数据的id值(id自增长)?...
  5. python3.x和python2.x唯一区别_Python3.x和Python2.x的区别介绍
  6. 2017.4.20 火星人 思考记录
  7. 2017.11.24 Stm8L151-factory
  8. 阿里云祝顺民:因云而生的云原生网络
  9. Python 源代码代码打包成 whl 文件
  10. 【20211228】【信号处理】从 Matlab 仿真角度理解频谱泄露
  11. mfc 调用绿色版的Foxit Reader / 迷你pdf阅读器.exe的同时打开一个pdf文件
  12. 企业工商数据-------大数据时代下的营销利器
  13. 怎么给照片加眼镜(二):3D眼镜模型合成法
  14. 解决微信大字体下H5布局混乱
  15. 解决 windows 下浏览器无法上网,QQ/微信正常上网
  16. web html5音乐播放器设计与实现,基于HTML5技术的音乐播放器的设计与实现
  17. iMazing2.15.9版app苹果手机备份同步神器存档恢复超方便
  18. autojs ui界面漂亮模板2
  19. opencv3之SVD
  20. 宏杰文件夹加密软件 v2928 官方免费版

热门文章

  1. 网络基础3----->广域网传输流程
  2. 2017年程序猿的九大提升点(微记录)
  3. 模拟实验室合成器插件-Arturia Analog Lab v5.2.0 WiN
  4. petri网基本知识
  5. 2.2 齐次方程组基础解系
  6. 小韦老师@神犇营-my1060-家谱
  7. 邢台职业技术学院计算机学费,邢台职业技术学院各专业学费标准
  8. php裁剪图片文件(php截取图片文件)
  9. php上传图片并添加水印
  10. .set_global_opts(title_opts) 设置标题