当前位置:首页 > uni-app

uniapp搜索框功能

2026-02-06 14:15:23uni-app

实现搜索框的基本结构

pages/index/index.vue中创建基础搜索框组件,使用<uni-search-bar>或自定义输入框:

<template>
  <view>
    <uni-search-bar 
      v-model="searchText" 
      placeholder="请输入关键词" 
      @confirm="handleSearch"
      @cancel="handleCancel"
    />
    <!-- 搜索结果列表 -->
    <view v-if="searchResults.length">
      <view v-for="(item,index) in searchResults" :key="index">
        {{ item.name }}
      </view>
    </view>
  </view>
</template>

处理搜索逻辑

<script>中定义搜索方法和数据绑定:

export default {
  data() {
    return {
      searchText: '',
      searchResults: []
    }
  },
  methods: {
    handleSearch() {
      // 调用API或本地数据过滤
      this.searchResults = this.mockData.filter(item => 
        item.name.includes(this.searchText)
      );
    },
    handleCancel() {
      this.searchText = '';
      this.searchResults = [];
    }
  }
}

优化搜索性能

添加防抖函数避免频繁触发搜索:

import { debounce } from '@/common/utils.js';

methods: {
  handleSearch: debounce(function() {
    // 实际项目中替换为API请求
    uni.request({
      url: '/api/search',
      data: { keyword: this.searchText },
      success: (res) => {
        this.searchResults = res.data.list;
      }
    });
  }, 500)
}

本地历史记录功能

通过uni.setStorage保存搜索记录:

handleSearch() {
  const history = uni.getStorageSync('searchHistory') || [];
  if (!history.includes(this.searchText)) {
    history.unshift(this.searchText);
    uni.setStorageSync('searchHistory', history.slice(0, 10));
  }
}

样式自定义

通过CSS调整搜索框外观:

uniapp搜索框功能

/* 修改uni-search-bar默认样式 */
/deep/ .uni-searchbar {
  background-color: #f8f8f8;
}
/deep/ .uni-searchbar__box {
  border-radius: 20px;
}

注意事项

  • 真机测试时需处理键盘收起事件(@blur
  • 列表数据量大时建议使用<scroll-view>包裹
  • 安卓端需注意输入框聚焦时页面顶起问题,可通过manifest.json配置调整窗口样式

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

相关文章

vue实现注册功能

vue实现注册功能

实现注册功能的基本步骤 在Vue中实现注册功能通常需要结合前端表单和后端API交互。以下是常见的实现方式: 创建注册表单组件 <template> <div class…

vue实现聊天功能

vue实现聊天功能

Vue实现聊天功能的方法 使用WebSocket实现实时通信 安装WebSocket客户端库如socket.io-client,在Vue组件中建立连接。创建一个消息列表和数据输入框,通过WebSock…

php怎么实现登录功能

php怎么实现登录功能

数据库准备 创建用户表存储登录信息,通常包括用户名、密码(需加密)等字段。示例SQL: CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY…

房产uniapp

房产uniapp

房产类UniApp开发指南 UniApp作为跨平台开发框架,适用于快速构建房产类应用(如二手房交易、租房平台、新房展示等)。以下是关键开发要点和实现方法: 技术选型与框架配置 跨平台适配:使…

uniapp 跟随键盘

uniapp 跟随键盘

uniapp 键盘弹出时调整布局的方法 在 uniapp 中实现页面内容跟随键盘弹出调整布局,可通过以下方式实现: 监听键盘高度变化 使用 uni.onKeyboardHeightChange 监听…

vue修改功能实现

vue修改功能实现

Vue 修改功能的实现方法 修改功能是 CRUD 操作中的重要部分,在 Vue 中可以通过多种方式实现。以下是几种常见的实现方案: 数据绑定与表单处理 使用 v-model 实现双向数据绑定,快速获…