欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-10 10:15:38
wxsearch优雅的微信小程序搜索框 一、功能 支持自定义热门key 支持搜索历史 支持搜索建议 支持搜索历史(记录)缓存 二、使用 1...

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

一、功能

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

二、使用

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

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

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

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文件中引入。

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

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 效果图

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

三、源码解读

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,可以根据情况自己进行修改。

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