千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 微信小程序搜索框功能实现

微信小程序搜索框功能实现

来源:千锋教育
发布人:xqq
时间: 2023-11-22 07:54:45 1700610885

微信小程序作为一种轻量级的应用程序,越来越受到开发者的关注和喜爱。

其中搜索框功能作为常用的组件之一,在小程序中也有着广泛的应用。本文将从以下几个方面对微信小程序搜索框功能实现进行详细的阐述。

一、 搜索框组件的引入

在微信小程序中,可以通过在WXML文件中引入小程序提供的组件input来实现搜索框的功能。



  
  

其中,placeholder可设置输入框的提示文字;bindinput事件在 input 输入时触发,bindconfirm事件在点击完成按钮时触发;bindtap则在按钮点击时触发,用于进行搜索操作。

二、 获取输入内容并进行搜索

搜索框组件的引入即可实现用户在输入框内输入内容的操作,但是如何获取输入的内容,以及如何将输入的内容应用到搜索操作中呢?

我们可以通过在JS文件中定义onInput、onConfirm、onSearch等事件来实现,示例如下:


Page({
  data: {
    inputValue: ''
  },
  onInput: function(event) {
    console.log(event.detail.value)
    this.setData({
      inputValue: event.detail.value
    })
  },
  onConfirm: function(event) {
    console.log(event.detail.value)
    this.setData({
      inputValue: event.detail.value
    })
  },
  onSearch: function(event) {
    console.log(this.data.inputValue)
    //进行搜索操作
  }
})

onInputonConfirm事件都会在用户在输入框内进行输入时触发,它们所传递的参数中包含了用户输入的内容。可以通过setData()函数将获取到的输入值存储到页面数据中。而onSearch事件则在点击搜索按钮时触发,在函数内部便可进行搜索操作。

三、 组件样式的定制

微信小程序提供了组件样式的定义方法,可以方便的实现对搜索框样式的调整。



通过设置搜索框组件的父节点viewclass来实现对组件整体样式的定义。在input标签的样式中可以设置输入框的宽度、高度,以及内外边距等。在button标签的样式中则可以设置按钮的宽度、高度,颜色等。

四、 关键字检索结果的展示

搜索框完成了用户输入、搜索操作和样式定制的功能,但是搜索结果该如何呈现,怎样才能达到更好的用户体验呢?

我们可以使用list组件来实现搜索结果的展示,代码如下:



  
    
      {{item.title}}
      {{item.abstract}}
    
  

在JS文件中,需要定义searchResults数组存储搜索结果,并在执行搜索操作后更新该数组的内容。


Page({
  data: {
    inputValue: '',
    searchResults: []
  },
  onSearch: function(event) {
    console.log(this.data.inputValue)
    //进行搜索操作
    //将搜索结果存储在searchResults中
    this.setData({
      searchResults: results
    })
  }
})

list组件中,使用wx:for遍历searchResults数组,并使用block标签包含,其中wx:key必须要设置为数组中每个元素的唯一标识,使用item表示每个结果。

通过设置classtitleabstract来定义搜索结果的标题和简介等信息的样式。

五、 自动完成提示的实现

为了更好的用户体验,我们可以实现实时搜索关键字并展示搜索提示,用户可以直接选择搜索提示中的关键字。

在WXML文件中添加提示框picker-view组件:



  
    
      {{item}}
    
  

在JS文件中,则需要定义suggestion数组存储提示内容,showPicker表示是否展示提示框,selected表示当前选中的提示关键字。


Page({
  data: {
    inputValue: '',
    searchResults: [],
    suggestion: [],
    showPicker: false,
    selected: 0
  },
  onInput: function(event) {
    console.log(event.detail.value)
    this.setData({
      inputValue: event.detail.value
    })
    //进行关键字检索,获取提示内容存储在suggestion中
    this.setData({
      suggestion: suggestion,
      showPicker: true
    })
  },
  onPickerChange: function(event) {
    console.log(event.detail.value)
    this.setData({
      selected: event.detail.value[0]
    })
    //将选中的提示关键字更新到输入框
    const selectedKeyword = this.data.suggestion[event.detail.value[0]]
    this.setData({
      inputValue: selectedKeyword
    })
  }
})

在输入框输入内容的时候触发onInput事件,查询关键字并更新提示内容,设置showPicker为true,展示提示框;在选择提示关键字的时候触发onPickerChange事件,根据选中位置更新selected的值,将选中关键字填充到输入框中。

通过以上步骤实现了微信小程序搜索框的输入、搜索、样式定制、关键字检索和自动完成提示等功能。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT