微信小程序搜索组件wxSearch实例详解

发布时间 - 2026-01-11 01:47:47    点击率:

wxSearch优雅的微信小程序搜索框

一、功能

支持自定义热门key
支持搜索历史
支持搜索建议
支持搜索历史(记录)缓存

二、使用

1、将wxSearch文件夹整个拷贝到根目录下
2、引入

// wxml中引入模板 
<import src="/wxSearch/wxSearch.wxml"/> 
<template is="wxSearch" data="{{wxSearchData}}"/> 
// wxss中引入 @import "/wxSearch/wxSearch.wxss";

3、使用3.1 wxml文件这里有两种模板:一种为wxSearch作者提供的模板,另一种是weui提供的模板。

3.1.1 第一种模板

// wxSearch作者提供的模板 
<import src="/wxSearch/wxSearch.wxml"/> 
<view class="wxSearch-section">  
<view class="wxSearch-pancel">    
<input bindinput="wxSearchInput" bindfocus="wxSerchFocus" value="{{wxSearchData.value}}" bindblur="wxSearchBlur" class="wxSearch-input" placeholder="搜索" />    
<button class="wxSearch-button" bindtap="wxSearchFn" size="mini" plain="true">搜索</button>  
</view> 
</view> 
<template is="wxSearch" data="{{wxSearchData}}"/>

3.1.2 第二种模板

<import src="../../wxSearch/wxSearch.wxml" /> 
<view class="weui-search-bar"> 
 <view class="weui-search-bar__form">   
 <view class="weui-search-bar__box">     
  <icon class="weui-icon-search_in-box" type="search" size="14"></icon>     
  <input type="text" class="weui-search-bar__input" placeholder="搜索" value="{{wxSearchData.value}}"         bindfocus="wxSerchFocus" bindinput="wxSearchInput" bindblur="wxSearchBlur" />     
  <view class="weui-icon-clear" wx:if="{{inputVal.length > 0}}" bindtap="clearInput">       
  <icon type="clear" size="14"></icon>     
  </view>   
 </view> 
 </view> 
</view> 
<template is="wxSearch" data="{{wxSearchData}}" />

注意:此模板需要使用weui.wxss文件,请在app.wxss文件中引入。

3.1.3 自定义搜索框如果上面两种搜索样式都不喜欢,你也可以自己定义,只需要保证事件的触发即可。

// 搜索输入框需要保证下面三个事件的书写正确 
<input bindfocus="wxSerchFocus" bindinput="wxSearchInput" bindblur="wxSearchBlur" /> 
// 搜索按钮的事件 <button bindtap="wxSearchFn"/>

3.2 js文件

wxSearchFn: function(e){
  var that = this
  WxSearch.wxSearchAddHisKey(that);
 },
 wxSearchInput: function(e){
  var that = this
  WxSearch.wxSearchInput(e,that);
 },
 wxSerchFocus: function(e){
  var that = this
  WxSearch.wxSearchFocus(e,that);
 },
 wxSearchBlur: function(e){
  var that = this
  WxSearch.wxSearchBlur(e,that);
 },
 wxSearchKeyTap:function(e){
  var that = this
  WxSearch.wxSearchKeyTap(e,that);
 },
 wxSearchDeleteKey: function(e){
  var that = this
  WxSearch.wxSearchDeleteKey(e,that);
 },
 wxSearchDeleteAll: function(e){
  var that = this;
  WxSearch.wxSearchDeleteAll(that);
 },
 wxSearchTap: function(e){
  var that = this
  WxSearch.wxSearchHiddenPancel(that);
 }

3.3 效果图


三、源码解读

module.exports = {
  init: init,
  initColor: initColors,
  initMindKeys: initMindKeys,
  wxSearchInput: wxSearchInput,
  wxSearchFocus: wxSearchFocus,
  wxSearchBlur: wxSearchBlur,
  wxSearchKeyTap: wxSearchKeyTap,
  wxSearchAddHisKey:wxSearchAddHisKey,
  wxSearchDeleteKey:wxSearchDeleteKey,
  wxSearchDeleteAll:wxSearchDeleteAll,
  wxSearchHiddenPancel:wxSearchHiddenPancel
}
init 初始化wxSearch

参数:that var that = this后传入即可
barHeight 搜索框高度 根据你设定的搜索框高度进行设定
keys 数组 热门搜索的显示内容
isShowKey 是否显示热门搜索 默认显示(false即可不显示)
isShowHis 是否显示历史搜索 默认显示(false即可不显示)
callBack 回调函数
源码做了什么 
初始化了wxSearchData的内容

wxSearchData:{    
 view:{       
  isShow: false, //是否显示搜索界面,默认隐藏,当输入框获取焦点时显示
  searchbarHeght: 20, //根据手机屏幕高度和传入的barHeight进行计算
  isShowSearchKey: true, //默认为true    
  isShowSearchHistory: true, //默认为true    }    
  keys:[],//自定义热门搜索,传入的keys    
  his:[],//历史搜索关键字,从缓存中获取    
  value: '' // 搜索内容   } 
wxSearch.init(that, barHeight, keys, isShowKey, isShowHis, callBack);
initMindKeys 初始化mindKeys 
// mindKeys即为所要检索内容的集合 var mindKeys = ['weappdev.com','微信小程序开发','微信开发','微信小程序']; WxSearch.initMindKeys(mindKeys);

其他事件函数不再赘述,可能会有一些bug,可以根据情况自己进行修改。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# 微信小程序搜索组件wxSearch  # 小程序  # wxSearch  # 微信小程序实现搜索功能  # 微信小程序首页的分类功能和搜索功能的实现思路及代码详解  # 微信小程序下拉框搜索功能的实现方法  # 微信小程序实现搜索功能并跳转搜索结果页面  # 微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)  # 微信小程序实现全局搜索代码高亮的示例  # 微信小程序实现搜索历史功能  # 微信小程序 搜索框组件代码实例  # 微信小程序实现搜索框功能  # 微信小程序实现简单搜索功能  # 自定义  # 热门搜索  # 可不  # 输入框  # 默认为  # 都不  # 两种  # 请在  # 希望能  # 只需要  # 有两种  # 谢谢大家  # 可以根据  # 所要  # 你也可以  # 即为  # 回调  # 第二种  # 第一种  # 程序开发 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  iOS UIView常见属性方法小结  Linux后台任务运行方法_nohup与&使用技巧【技巧】  如何破解联通资金短缺导致的基站建设难题?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  如何在局域网内绑定自建网站域名?  ,怎么在广州志愿者网站注册?  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  Laravel如何使用Telescope进行调试?(安装和使用教程)  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  如何快速查询网站的真实建站时间?  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  什么是javascript作用域_全局和局部作用域有什么区别?  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  JavaScript如何实现错误处理_try...catch如何捕获异常?  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  WordPress 子目录安装中正确处理脚本路径的完整指南  如何在Ubuntu系统下快速搭建WordPress个人网站?  Laravel怎么上传文件_Laravel图片上传及存储配置  Laravel模型事件有哪些_Laravel Model Event生命周期详解  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  Laravel如何与Pusher实现实时通信?(WebSocket示例)  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  ,交易猫的商品怎么发布到网站上去?  如何在Tomcat中配置并部署网站项目?  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  java获取注册ip实例  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  Angular 表单中正确绑定输入值以确保提交与验证正常工作  IOS倒计时设置UIButton标题title的抖动问题  如何实现建站之星域名转发设置?  如何彻底卸载建站之星软件?  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  JavaScript中的标签模板是什么_它如何扩展字符串功能  js实现获取鼠标当前的位置  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  网页设计与网站制作内容,怎样注册网站?  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  如何在云主机上快速搭建多站点网站?  Laravel如何使用Sanctum进行API认证?(SPA实战)  javascript中闭包概念与用法深入理解