当前位置:首页 > 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搜索框组件

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

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

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

相关文章

vue实现穿梭框树组件

vue实现穿梭框树组件

Vue 穿梭框树组件实现 穿梭框树组件通常结合了树形结构和穿梭框功能,允许用户在左右两栏之间移动树节点数据。以下是基于 Vue 的实现方案: 核心功能设计 数据结构 树形数据通常采用嵌套结构,例如:…

uniapp树形选择

uniapp树形选择

uniapp树形选择实现方法 使用uni-data-checkbox组件 uniapp内置的uni-data-checkbox组件支持树形结构选择,适用于多级分类场景。配置时需要将数据格式化为树形结构…

uniapp实现标题栏渐变

uniapp实现标题栏渐变

实现标题栏渐变的方法 在UniApp中实现标题栏渐变效果,可以通过修改页面的导航栏样式或使用自定义导航栏来实现。以下是几种常见的方法: 方法一:使用原生导航栏渐变 通过修改pages.json中的…

uniapp悬浮

uniapp悬浮

实现悬浮效果的方法 在UniApp中实现悬浮效果可以通过CSS的position: fixed或position: sticky属性结合动态样式控制来实现。以下是具体实现方式: 使用CSS固定定位…

任务 uniapp

任务 uniapp

uniapp 简介 Uniapp 是一款基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布(如微信小程序、H5、App、快应用等)。其核心优势在于代码复用率高,开发者可以通过一套代码适配多个…

介绍uniapp

介绍uniapp

Uniapp 概述 Uniapp 是一款基于 Vue.js 的跨平台开发框架,允许开发者使用一套代码同时生成 iOS、Android、Web 以及小程序应用。其核心优势在于高效开发和代码复用,大幅降低…