当前位置:首页 > 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>

多端适配方案

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

uniapp 搜索

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

标签: uniapp
分享给朋友:

相关文章

uniapp 消息推送

uniapp 消息推送

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

uniapp样式库

uniapp样式库

uniapp 常用样式库推荐 uView UI uView 是专为 uniapp 设计的多端兼容 UI 框架,提供丰富的组件和工具类。支持 Vue3 组合式 API,内置主题定制功能,常用于快速构建企…

uniapp模板库

uniapp模板库

uniapp模板库推荐 官方模板库 uni-app官方提供多个模板,涵盖电商、社交、新闻等多个领域。这些模板可直接在HBuilderX中通过新建项目选择,包含基础结构和常用功能模块,适合快速启动项目。…

uniapp使用axios无法请求

uniapp使用axios无法请求

uniapp中使用axios请求问题解决方案 在uniapp中使用axios可能会遇到跨域、请求失败或兼容性问题。以下是常见原因及解决方法: 检查axios安装与引入 确保已正确安装axios:…

uniapp 3.0

uniapp 3.0

uniapp 3.0 核心特性 uniapp 3.0 是 DCloud 推出的跨端开发框架升级版本,支持一套代码编译到 iOS、Android、Web 及各类小程序平台。以下为关键特性与使用要点:…

uniapp弹出选择

uniapp弹出选择

实现方式一:使用uni.showActionSheet 在UniApp中,可以通过uni.showActionSheet实现底部弹出的选择菜单。该方法支持自定义选项列表和回调处理。 代码示例:…