微信小程序搜索组件wxSearch实例详解
程序员文章站
2022-07-05 20:23:10
wxsearch优雅的微信小程序搜索框
一、功能
支持自定义热门key
支持搜索历史
支持搜索建议
支持搜索历史(记录)缓存
二、使用
1...
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,可以根据情况自己进行修改。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
下一篇: 原生JS发送异步数据请求