当前位置:首页 > uni-app

uniapp搜索框组件

2026-02-06 09:36:31uni-app

Uniapp 搜索框组件实现方法

在 Uniapp 中实现搜索框功能,可以通过原生组件或第三方插件完成。以下是几种常见实现方式:

使用 uni-ui 的 SearchBar 组件

安装 uni-ui 后直接引入 SearchBar 组件:

<template>
  <uni-search-bar @confirm="search" @input="input" :radius="100" cancelButton="none">
  </uni-search-bar>
</template>

<script>
import uniSearchBar from '@dcloudio/uni-ui/lib/uni-search-bar/uni-search-bar.vue'
export default {
  components: {uniSearchBar},
  methods: {
    search(e) {
      console.log('搜索内容:', e.value)
    },
    input(e) {
      console.log('输入内容:', e.value)
    }
  }
}
</script>

自定义搜索框组件

通过 view 和 input 组合实现:

<template>
  <view class="search-box">
    <input 
      class="search-input" 
      placeholder="请输入搜索内容" 
      v-model="keyword"
      @confirm="handleSearch"
      @input="handleInput"
    />
    <text class="search-icon">🔍</text>
  </view>
</template>

<script>
export default {
  data() {
    return {
      keyword: ''
    }
  },
  methods: {
    handleSearch() {
      uni.navigateTo({
        url: '/pages/search/result?keyword=' + this.keyword
      })
    },
    handleInput(e) {
      this.keyword = e.detail.value
    }
  }
}
</script>

<style>
.search-box {
  display: flex;
  align-items: center;
  padding: 10px 15px;
  background-color: #f5f5f5;
  border-radius: 20px;
}
.search-input {
  flex: 1;
  height: 30px;
  font-size: 14px;
}
.search-icon {
  margin-left: 10px;
  font-size: 16px;
}
</style>

使用第三方插件

  1. 安装 colorui 组件库:

    npm install colorui
  2. 使用 cu-custom 搜索组件:

    <template>
    <cu-custom bgColor="bg-gradual-blue" :isBack="true">
     <view slot="content">搜索框</view>
     <view slot="right">
       <view class="action">
         <view class="cu-load load-cuIcon" :class="!isLoad?'loading':'over'"></view>
       </view>
     </view>
    </cu-custom>
    </template>

注意事项

  • 搜索框样式需要根据项目需求调整
  • 移动端注意输入法弹出时的布局适配
  • 防抖处理可以减少频繁请求
  • 搜索历史记录建议使用本地存储

以上方法均可实现 Uniapp 搜索框功能,选择取决于项目复杂度和个性化需求。uni-ui 的 SearchBar 提供开箱即用的解决方案,自定义组件则更灵活可控。

uniapp搜索框组件

标签: 组件uniapp
分享给朋友:

相关文章

vue实现下拉刷新组件

vue实现下拉刷新组件

Vue 下拉刷新组件实现 核心思路 通过监听 touch 事件计算滑动距离,结合 CSS 过渡动画实现下拉效果,触发刷新回调。 基础实现步骤 监听 touch 事件 在组件 mounted 阶段绑定…

vue实现下拉框组件

vue实现下拉框组件

Vue 下拉框组件实现 基础实现 创建基础下拉框组件,使用v-model实现双向数据绑定: <template> <div class="dropdown">…

uniapp教程

uniapp教程

uniapp 基础介绍 uniapp 是一个基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布(如微信小程序、H5、App、快应用等)。其核心优势在于代码复用率高,学习成本低,适合快速构建多…

uniapp 消息推送

uniapp 消息推送

uniapp 消息推送实现方法 使用uniPush服务 uniapp官方提供了uniPush服务,支持iOS、Android及小程序平台的消息推送。需要在manifest.json中配置推送模块,并按…

uniapp请求超时处理

uniapp请求超时处理

uniapp请求超时处理方法 在uniapp中处理请求超时可以通过多种方式实现,以下是几种常见的处理策略: 设置全局请求超时时间 在main.js中配置全局请求超时时间,适用于所有请求:…

uniapp分享到facebook

uniapp分享到facebook

使用uniapp分享到Facebook的方法 在uniapp中实现分享到Facebook功能,可以通过调用原生插件或使用第三方SDK。以下是具体实现方式: 安装Facebook SDK插件 在un…