当前位置:首页 > React

react中如何筛选

2026-02-12 02:33:17React

筛选数组并渲染

在React中筛选数组通常涉及使用filter方法结合状态管理。以下是一个基础示例:

import { useState } from 'react';

function FilterList() {
  const [searchTerm, setSearchTerm] = useState('');
  const items = ['Apple', 'Banana', 'Cherry', 'Date'];

  const filteredItems = items.filter(item =>
    item.toLowerCase().includes(searchTerm.toLowerCase())
  );

  return (
    <div>
      <input
        type="text"
        placeholder="Search..."
        onChange={(e) => setSearchTerm(e.target.value)}
      />
      <ul>
        {filteredItems.map((item, index) => (
          <li key={index}>{item}</li>
        ))}
      </ul>
    </div>
  );
}

复杂对象筛选

当处理对象数组时,可以扩展筛选逻辑:

react中如何筛选

const products = [
  { id: 1, name: 'Laptop', category: 'Electronics' },
  { id: 2, name: 'Shirt', category: 'Clothing' }
];

function ProductList() {
  const [filters, setFilters] = useState({
    name: '',
    category: ''
  });

  const filteredProducts = products.filter(product => {
    return (
      product.name.toLowerCase().includes(filters.name.toLowerCase()) &&
      (filters.category === '' || product.category === filters.category)
    );
  });

  // 渲染逻辑...
}

性能优化

对于大型数据集,考虑使用useMemo避免不必要的重新计算:

react中如何筛选

import { useState, useMemo } from 'react';

function BigDataList({ data }) {
  const [filterValue, setFilterValue] = useState('');

  const filteredData = useMemo(() => {
    return data.filter(item =>
      item.name.toLowerCase().includes(filterValue.toLowerCase())
    );
  }, [data, filterValue]);

  // 渲染逻辑...
}

多条件筛选

实现组合筛选条件时,可以构建动态筛选函数:

function MultiFilter() {
  const [filters, setFilters] = useState({
    priceRange: [0, 100],
    inStock: false
  });

  const filterProducts = (products) => {
    return products.filter(product => {
      const priceMatch = product.price >= filters.priceRange[0] && 
                        product.price <= filters.priceRange[1];
      const stockMatch = !filters.inStock || product.inStock;
      return priceMatch && stockMatch;
    });
  };

  // 渲染逻辑...
}

使用第三方库

对于复杂筛选需求,可以考虑使用专用库如match-sorter

import { matchSorter } from 'match-sorter';

function EnhancedSearch({ items }) {
  const [search, setSearch] = useState('');

  const results = matchSorter(items, search, {
    keys: ['name', 'description']
  });

  // 渲染逻辑...
}

标签: react
分享给朋友:

相关文章

如何评价react native

如何评价react native

React Native 的优势 跨平台开发效率高:基于 JavaScript 和 React 语法,可同时开发 iOS 和 Android 应用,减少重复代码量。性能接近原生:通过原生组件渲染,性能…

如何react页面

如何react页面

创建 React 页面 使用 create-react-app 快速初始化项目: npx create-react-app my-app cd my-app npm start 基础页面结构 在 s…

react如何销毁

react如何销毁

React 组件销毁的机制 在 React 中,组件的销毁通常由 React 的生命周期管理。当组件从 DOM 中移除时,React 会自动触发销毁相关的生命周期方法。以下是关键点: 组件的销毁通常…

react如何迭代

react如何迭代

在 React 中迭代数组或对象 React 提供了多种方式来处理数组或对象的迭代,以下是常见的方法: 使用 map 方法迭代数组 map 是 JavaScript 数组的内置方法,常用于在 Re…

react 如何启动

react 如何启动

创建 React 项目 使用官方工具 create-react-app 快速初始化项目,需提前安装 Node.js(版本 ≥ 14.0.0)和 npm/yarn: npx create-react…

如何恢复react

如何恢复react

恢复 React 项目的方法 检查并修复依赖项 运行 npm install 或 yarn install 重新安装所有依赖项。如果依赖项损坏或缺失,这将恢复项目所需的库和工具。 恢复删除的文件 如…