当前位置:首页 > React

react加antd实现搜索

2026-01-27 20:04:14React

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

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

基础搜索框实现

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

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实现实时搜索:

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组件构建多条件搜索:

react加antd实现搜索

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 中,组件的销毁通常由 React 的生命周期管理。当组件从 DOM 中移除时,React 会自动触发销毁相关的生命周期方法。以下是关键点: 组件的销毁通常…

react 如何运行

react 如何运行

运行 React 项目的步骤 安装 Node.js 确保系统已安装 Node.js(建议版本 16+),可通过官网下载并安装。安装后验证版本: node -v npm -v 创建 React 项目…

react如何encode

react如何encode

React 中编码的实现方式 在 React 中,编码通常涉及对 URL、HTML 实体或特殊字符的处理。以下是几种常见的编码方法: 使用 encodeURIComponent 进行 URL 编码…

如何同步react

如何同步react

同步React组件状态的方法 使用useState和useEffect钩子组合可以同步React组件的状态。useState用于声明状态变量,useEffect用于监听状态变化并执行副作用。 imp…

react 如何跳转

react 如何跳转

使用 React Router 进行页面跳转 React 应用中通常使用 react-router-dom 库实现页面跳转。以下是几种常见的跳转方式: 安装依赖 npm install react…

react如何刷新

react如何刷新

刷新React组件的方法 使用状态更新触发重新渲染 通过更新组件的状态可以触发重新渲染。React会在状态变化时自动重新渲染组件。 const [count, setCount] = useStat…