微信小程序搜索组件wxSearch

作者: 吕周坤 | 来源:发表于2017-05-28 18:22 被阅读10521次

今天发现了一个不错的微信小程序开源组件--wxSearch,使用起来也非常简单,但其提供的文档不是很详细,通读源码后写下此笔记。
github地址:https://github.com/icindy/wxSearch

wxSearch

优雅的微信小程序搜索框

一、功能

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

二、使用

  1. 将wxSearch文件夹整个拷贝到根目录下
  2. 引入
// wxml中引入模板
<import src="/wxSearch/wxSearch.wxml"/>
<template is="wxSearch" data="{{wxSearchData}}"/>
// wxss中引入
@import "/wxSearch/wxSearch.wxss";
  1. 使用
    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}}"/>
搜索框效果图1.png

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


搜索框效果图2.png

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

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

3.2 js文件

var WxSearch = require('../../wxSearch/wxSearch.js');
var app = getApp();
Page({
  data: {
    // wxSearchData:{
    //   view:{
    //     isShow: true
    //   }
    // }
  },
  onLoad: function () {
    console.log('onLoad');
    var that = this;
    //初始化的时候渲染wxSearchdata
    WxSearch.init(that,43,['weappdev','小程序','wxParse','wxSearch','wxNotification']);
    WxSearch.initMindKeys(['weappdev.com','微信小程序开发','微信开发','微信小程序']);
  },
  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效果图.gif

三、源码解读

  1. wxSearch暴露的接口
module.exports = {
    init: init,
    initMindKeys: initMindKeys,
    wxSearchInput: wxSearchInput,
    wxSearchFocus: wxSearchFocus,
    wxSearchBlur: wxSearchBlur,
    wxSearchKeyTap: wxSearchKeyTap,
    wxSearchAddHisKey:wxSearchAddHisKey,
    wxSearchDeleteKey:wxSearchDeleteKey,
    wxSearchDeleteAll:wxSearchDeleteAll,
    wxSearchHiddenPancel:wxSearchHiddenPancel
}
  1. init 初始化wxSearch
/**
参数: 
      1. that    var that = this后传入即可
      2. barHeight 搜索框高度  根据你设定的搜索框高度进行设定
      3. keys  数组  热门搜索的显示内容
      4. isShowKey  是否显示热门搜索  默认显示(false即可不显示)
      5. isShowHis  是否显示历史搜索  默认显示(false即可不显示)
      6. callBack  回调函数
源码做了什么
      1. 初始化了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);
  1. initMindKeys 初始化mindKeys
// mindKeys即为所要检索内容的集合
var mindKeys = ['weappdev.com','微信小程序开发','微信开发','微信小程序'];
WxSearch.initMindKeys(mindKeys);
  1. 其他事件函数不再赘述,可能会有一些bug,可以根据情况自己进行修改。

相关文章

  • 2018-08-13

    学习了一个微信小程序开源组件--wxSearch。 功能 : 支持自定义热门key 支持搜索历史 支持搜索建议 支...

  • 微信小程序搜索组件wxSearch

    wxSearch优雅的微信小程序搜索框一、功能支持自定义热门key支持搜索历史支持搜索建议支持搜索历史(记录)缓存...

  • 微信小程序搜索组件wxSearch

    今天发现了一个不错的微信小程序开源组件--wxSearch,使用起来也非常简单,但其提供的文档不是很详细,通读源码...

  • 小程序好文集合

    组件篇 微信小程序:组件实践 整体梳理 微信小程序开发深入解读

  • 微信小程序-canvas压缩图片使用入门

    微信小程序canvas组件官方文档 微信小程序canvas组件官方文档canvas API canvas组件介绍 ...

  • 微信小程序日历组件开发

    # 微信小程序日历组件开发 微信小程序基础知识 微信小程序 框架介绍 组件文档 上述是开发小程序的基本知识。 今天...

  • 微信小程序基础

    微信小程序介绍微信小程序开发工具的使用微信小程序框架文件微信小程序逻辑层微信小程序视图层微信小程序组件介绍微信小程...

  • 微信小程序组件探究和应用

    把玩微信小程序组件 微信小程序把玩《二》:页面生命周期,模块化,数据绑定,view组件 微信小程序把玩《三》:sc...

  • 微信小程序性能优化实践

    历史回顾: 微信小程序自定义组件 - 表格组件来啦 通过微信小程序来实现 “钉钉打卡” 记一次微信小程序项目分包,...

  • 微信小程序01 -- 基础知识

    特点 触手可及,用完即走。就是微信里的原生APP。 小程序示例 微信搜索“小程序示例”,可以获得 组件 接口 云开...

网友评论

本文标题:微信小程序搜索组件wxSearch

本文链接:https://www.haomeiwen.com/subject/tyshfxtx.html