当前位置:首页 > React

react加antd实现搜索

2026-01-27 20:04:14React

使用React和Ant Design实现搜索功能

在React项目中结合Ant Design组件库实现搜索功能,主要涉及Input.Search组件的使用以及状态管理。以下是具体实现方式:

基础搜索框实现

安装Ant Design后,引入Input组件并设置搜索框基础样式:

react加antd实现搜索

import { Input } from 'antd';
const { Search } = Input;

function BasicSearch() {
  const handleSearch = (value) => {
    console.log('搜索关键词:', value);
    // 这里添加搜索逻辑
  };

  return (
    <Search
      placeholder="输入搜索内容"
      allowClear
      enterButton="搜索"
      size="large"
      onSearch={handleSearch}
    />
  );
}

结合状态管理实现实时搜索

通过useState管理搜索词,配合onChange实现实时搜索:

react加antd实现搜索

import { useState } from 'react';
import { Input } from 'antd';

function RealTimeSearch() {
  const [searchText, setSearchText] = useState('');

  const handleChange = (e) => {
    setSearchText(e.target.value);
    // 可在此处添加防抖逻辑
  };

  return (
    <Input.Search
      value={searchText}
      onChange={handleChange}
      placeholder="实时搜索..."
    />
  );
}

表格数据搜索过滤

结合Ant Design的Table组件实现数据过滤:

import { Table, Input } from 'antd';
import { useState } from 'react';

function SearchTable() {
  const [data, setData] = useState(/* 初始数据 */);
  const [filteredData, setFilteredData] = useState(data);

  const handleSearch = (value) => {
    const filtered = data.filter(item => 
      item.name.toLowerCase().includes(value.toLowerCase())
    );
    setFilteredData(filtered);
  };

  return (
    <>
      <Input.Search 
        onSearch={handleSearch} 
        style={{ width: 200, marginBottom: 16 }} 
      />
      <Table dataSource={filteredData} columns={/* 列配置 */} />
    </>
  );
}

高级搜索表单

使用Form组件构建多条件搜索:

import { Form, Input, Button } from 'antd';

function AdvancedSearch() {
  const [form] = Form.useForm();

  const onFinish = (values) => {
    console.log('搜索条件:', values);
    // 执行搜索逻辑
  };

  return (
    <Form form={form} onFinish={onFinish} layout="inline">
      <Form.Item name="keyword" label="关键词">
        <Input />
      </Form.Item>
      <Form.Item name="category" label="分类">
        <Input />
      </Form.Item>
      <Form.Item>
        <Button type="primary" htmlType="submit">搜索</Button>
      </Form.Item>
    </Form>
  );
}

性能优化建议

  1. 对高频输入的搜索框添加防抖处理
  2. 大数据量时考虑分页加载
  3. 复杂搜索条件可结合后端接口实现
import { debounce } from 'lodash';

const debouncedSearch = debounce((value) => {
  // 实际搜索逻辑
}, 500);

<Input.Search onChange={e => debouncedSearch(e.target.value)} />

以上方案可根据实际需求组合使用,Ant Design的搜索组件支持多种样式定制和事件处理,能够满足大多数业务场景。

标签: reactantd
分享给朋友:

相关文章

如何开发react

如何开发react

开发React应用的基本步骤 安装Node.js和npm 确保系统中已安装Node.js(包含npm)。可通过官网下载安装包,安装后验证版本: node -v npm -v 创建React项目…

react如何下载

react如何下载

安装 React 的步骤 通过 npm 或 yarn 安装 React,确保已安装 Node.js(版本建议 ≥ 14.0.0)。打开终端或命令行工具,运行以下命令: npx create-reac…

如何监控react性能

如何监控react性能

使用 React Profiler API React 16.5 及以上版本内置了 Profiler API,可直接测量组件渲染时间。通过 <React.Profiler> 包裹目标组件,…

如何实操react

如何实操react

安装 React 环境 使用 create-react-app 快速搭建项目: npx create-react-app my-app cd my-app npm start 项目启动后默认在…

react如何获取路由

react如何获取路由

获取当前路由路径 在React中获取当前路由路径可以通过react-router-dom提供的useLocation钩子。useLocation返回一个包含当前路由信息的对象,其中pathname属性…

react如何用echarts

react如何用echarts

在React中使用ECharts 安装ECharts和React专用封装库: npm install echarts echarts-for-react 基础使用示例 创建一个基础的柱状图组件:…