当前位置:首页 > uni-app

uniapp搜索框功能

2026-03-05 16:10:37uni-app

uniapp 搜索框功能实现

在 uniapp 中实现搜索框功能可以通过多种方式完成,以下是一些常见的方法和示例代码:

基础搜索框实现

使用 uni-easyinput 组件或原生 input 元素结合搜索按钮:

uniapp搜索框功能

<template>
  <view>
    <uni-easyinput 
      v-model="searchText" 
      placeholder="请输入搜索内容" 
      @confirm="handleSearch"
    >
      <template #right>
        <button @click="handleSearch">搜索</button>
      </template>
    </uni-easyinput>
  </view>
</template>

<script>
export default {
  data() {
    return {
      searchText: ''
    }
  },
  methods: {
    handleSearch() {
      uni.showToast({
        title: '搜索:' + this.searchText,
        icon: 'none'
      })
      // 实际搜索逻辑
    }
  }
}
</script>

防抖优化

对于频繁触发的搜索(如实时搜索),建议添加防抖处理:

let timer = null
methods: {
  handleSearch() {
    clearTimeout(timer)
    timer = setTimeout(() => {
      this.performSearch()
    }, 500)
  },
  performSearch() {
    // 实际搜索逻辑
  }
}

搜索历史记录

添加搜索历史存储功能:

uniapp搜索框功能

methods: {
  saveSearchHistory() {
    let history = uni.getStorageSync('searchHistory') || []
    history.unshift(this.searchText)
    history = [...new Set(history)].slice(0, 10)
    uni.setStorageSync('searchHistory', history)
  }
}

接口请求示例

结合后端接口的搜索实现:

async performSearch() {
  try {
    const res = await uni.request({
      url: 'https://api.example.com/search',
      data: {
        keyword: this.searchText
      }
    })
    // 处理返回结果
  } catch (error) {
    uni.showToast({
      title: '搜索失败',
      icon: 'none'
    })
  }
}

样式自定义

通过 CSS 自定义搜索框样式:

.custom-search {
  display: flex;
  padding: 10px;
  background-color: #f5f5f5;
  border-radius: 20px;
}
.custom-search input {
  flex: 1;
  padding: 0 10px;
}

注意事项

  • 在微信小程序中,input 组件需要添加 confirm-type="search" 属性才能触发键盘的搜索按钮
  • 考虑添加 loading 状态提升用户体验
  • 对于复杂搜索条件,可以设计单独的搜索页面
  • 移动端注意软键盘的处理,可能需要手动控制收起

以上实现可以根据具体需求进行组合和扩展,uniapp 的跨平台特性保证了这些代码在多数平台都能正常运行。

标签: 功能uniapp
分享给朋友:

相关文章

uniapp发布到应用商店

uniapp发布到应用商店

发布到苹果App Store 确保开发者账号已注册并加入Apple Developer Program,年费99美元。在Xcode中生成iOS发布证书(.p12)和描述文件(Provisioning…

uniapp安装uview

uniapp安装uview

安装uView到UniApp项目 方法一:通过npm安装(推荐) 确保项目已初始化npm,在项目根目录执行以下命令: npm install uview-ui 在main.js文件中引入并注册uV…

uniapp 美颜

uniapp 美颜

uniapp 美颜实现方法 在uniapp中实现美颜功能可以通过多种方式完成,以下是一些常见的方法: 使用原生插件 uniapp支持调用原生插件实现美颜效果,适用于对性能要求较高的场景。需要开发原…

uniapp商场

uniapp商场

uniapp 商城开发指南 开发环境搭建 安装HBuilderX作为开发工具,确保已安装Node.js和npm。创建uniapp项目时选择模板,推荐使用官方提供的商城模板或插件市场中的商城模板。 页…

h5实现点击复制功能

h5实现点击复制功能

使用document.execCommand方法(兼容旧浏览器) 通过document.execCommand('copy')实现复制功能,需先选中文本内容。创建一个隐藏的textarea或input…

vue实现按钮实现点击功能

vue实现按钮实现点击功能

实现按钮点击功能 在Vue中实现按钮点击功能可以通过v-on指令或@缩写来绑定事件。以下是几种常见的实现方式: 使用v-on指令 通过v-on:click绑定点击事件,触发定义在methods中的方…