当前位置:首页 > uni-app

uniapp 搜索

2026-01-13 20:32:38uni-app

uniapp 搜索功能实现方法

全局搜索组件集成

pages.json中配置全局搜索栏,适用于所有页面顶部显示搜索框。示例代码:

"globalStyle": {
  "navigationBarTextStyle": "black",
  "navigationBarTitleText": "uni-app",
  "navigationBarBackgroundColor": "#F8F8F8",
  "backgroundColor": "#F8F8F8",
  "app-plus": {
    "titleNView": {
      "searchInput": {
        "align": "center",
        "backgroundColor": "#fff",
        "borderRadius": "12px",
        "placeholder": "请输入搜索内容",
        "disabled": false
      }
    }
  }
}

页面级搜索框实现

使用uni-search-bar组件实现单页面搜索功能,支持实时搜索和取消操作:

<template>
  <view>
    <uni-search-bar 
      @confirm="search" 
      @input="input" 
      @cancel="cancel"
      placeholder="商品搜索">
    </uni-search-bar>
  </view>
</template>

搜索逻辑处理

通过@input事件实现实时搜索建议,使用防抖函数优化性能:

let timer = null
methods: {
  input(e) {
    clearTimeout(timer)
    timer = setTimeout(() => {
      this.getSuggestions(e)
    }, 500)
  },
  getSuggestions(keyword) {
    uni.request({
      url: 'https://api.example.com/search',
      data: { keyword },
      success: (res) => {
        this.suggestions = res.data.list
      }
    })
  }
}

历史记录存储

使用uni.setStorageSync保存搜索历史,并支持本地缓存管理:

saveHistory(keyword) {
  let histories = uni.getStorageSync('searchHistory') || []
  if (!histories.includes(keyword)) {
    histories.unshift(keyword)
    uni.setStorageSync('searchHistory', histories.slice(0, 10))
  }
}

搜索结果页设计

建议采用分页加载模式,结合uni-load-more组件实现无限滚动:

<scroll-view 
  scroll-y 
  @scrolltolower="loadMore"
  style="height: calc(100vh - 100px)">
  <view v-for="item in list" :key="item.id">
    <!-- 结果项内容 -->
  </view>
  <uni-load-more :status="loadingStatus"></uni-load-more>
</scroll-view>

多端适配方案

通过条件编译处理各平台差异:

// #ifdef APP-PLUS
this.adjustSearchBarPosition()
// #endif
// #ifdef H5
this.initH5SearchEvent()
// #endif

uniapp 搜索

标签: uniapp
分享给朋友:

相关文章

uniapp教程

uniapp教程

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

uniapp实名认证

uniapp实名认证

uniapp实名认证实现方法 使用uniCloud实名认证插件 uniapp官方提供了uniCloud的实名认证插件,可快速集成到项目中。插件支持身份证识别、活体检测等功能,需在uniCloud控制台…

uniapp树形选择

uniapp树形选择

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

uniapp安装axios

uniapp安装axios

安装axios 在uniapp项目中安装axios需要确保项目支持node_modules管理。通过npm或yarn安装axios: npm install axios # 或 yarn add…

uniapp实现懒加载

uniapp实现懒加载

uniapp实现懒加载的方法 在uniapp中实现懒加载可以通过多种方式,以下是几种常见的方法: 使用uni.lazyLoad组件 uniapp提供了内置的懒加载组件,适用于图片等资源的懒加载。在页…

uniapp指南

uniapp指南

开发环境搭建 下载HBuilderX作为官方推荐的开发工具,支持Windows和Mac系统。安装后创建uni-app项目,选择模板(如默认模板、Hello Uni-app等)。确保Node.js版本在…