当前位置:首页 > 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 项目的方法 检查当前 React 版本 在项目根目录的 package.json 文件中查看 react 和 react-dom 的版本号。也可以通过命令行运行以下命令查看: n…

react native如何启动

react native如何启动

如何启动 React Native 项目 安装 Node.js 和 npm 确保已安装 Node.js(建议版本 16 或更高)和 npm(Node.js 自带)。可通过以下命令检查版本: nod…

如何手写一个react

如何手写一个react

手写一个简单的 React 创建一个基础的 React 实现需要理解其核心概念:虚拟 DOM、组件、状态管理和渲染。以下是一个简化版的 React 实现。 创建虚拟 DOM 虚拟 DOM 是真实 D…

如何优化react

如何优化react

优化 React 性能的方法 使用 React.memo 或 PureComponent 对于函数组件,使用 React.memo 进行记忆化,避免不必要的重新渲染。类组件可以使用 PureCompo…

如何改造react

如何改造react

改造 React 项目的关键方法 分析当前项目结构 通过评估现有组件、状态管理和依赖项,明确需要改进的部分。使用工具如 webpack-bundle-analyzer 识别性能瓶颈。 升级 Rea…

react如何读

react如何读

React 的发音 React 的发音为 /riˈækt/(音标),读作“瑞-艾克特”。其中: “Re” 发音类似英文单词 “read” 的开头部分。 “act” 发音与英文单词 “act” 一致。…