当前位置:首页 > React

react中如何筛选

2026-01-23 22:31:43React

筛选数据的基本方法

在React中筛选数据通常涉及对数组的操作,结合状态管理实现动态过滤。以下是常见的筛选实现方式:

使用filter方法 通过JavaScript的Array.prototype.filter()方法对数据进行条件筛选:

const filteredData = originalData.filter(item => item.property === filterValue);

结合useState管理筛选状态 维护一个状态变量存储筛选条件:

const [filter, setFilter] = useState('');
const filteredItems = items.filter(item => 
  item.name.toLowerCase().includes(filter.toLowerCase())
);

输入控制与实时筛选

受控输入组件 创建输入框与筛选逻辑的绑定:

<input 
  type="text" 
  value={filter} 
  onChange={(e) => setFilter(e.target.value)} 
/>

防抖优化 使用lodash的debounce避免频繁触发筛选:

import { debounce } from 'lodash';
const handleSearch = debounce((term) => {
  setFilter(term);
}, 300);

多条件筛选实现

复合筛选逻辑 组合多个条件进行复杂筛选:

react中如何筛选

const filtered = data.filter(item => {
  return (
    (category ? item.category === category : true) &&
    (priceRange ? item.price >= priceRange.min && item.price <= priceRange.max : true)
  );
});

使用useMemo优化性能 对筛选结果进行缓存:

const filteredData = useMemo(() => {
  return bigData.filter(/* conditions */);
}, [bigData, filterConditions]);

筛选UI模式

下拉选择器筛选 实现基于select的筛选控制:

<select onChange={(e) => setFilterType(e.target.value)}>
  {options.map(opt => (
    <option key={opt.value} value={opt.value}>{opt.label}</option>
  ))}
</select>

复选框组筛选 处理多选筛选场景:

react中如何筛选

const [selectedFilters, setSelectedFilters] = useState([]);
const toggleFilter = (filter) => {
  setSelectedFilters(prev => 
    prev.includes(filter) 
      ? prev.filter(f => f !== filter)
      : [...prev, filter]
  );
};

服务端筛选

API参数传递 将筛选条件作为请求参数:

useEffect(() => {
  fetch(`/api/items?category=${category}&search=${query}`)
    .then(res => res.json())
    .then(setData);
}, [category, query]);

GraphQL变量 在GraphQL查询中使用筛选变量:

const { data } = useQuery(GET_ITEMS, {
  variables: { filter: { status: 'ACTIVE' } }
});

筛选组件设计模式

受控组件模式 通过props接收筛选值和回调:

function SearchFilter({ value, onChange }) {
  return <input value={value} onChange={onChange} />;
}

上下文共享筛选状态 使用Context跨组件共享筛选条件:

const FilterContext = createContext();
function App() {
  const [filters, setFilters] = useState({});
  return (
    <FilterContext.Provider value={{ filters, setFilters }}>
      {/* 子组件 */}
    </FilterContext.Provider>
  );
}

标签: react
分享给朋友:

相关文章

react 如何执行

react 如何执行

安装 React 确保 Node.js 安装在本地环境中。通过以下命令创建新的 React 项目: npx create-react-app my-app 进入项目目录并启动开发服务器:…

react如何测试

react如何测试

React 测试方法 React 应用的测试通常涉及组件测试、集成测试和端到端测试。以下是常用的测试工具和方法: Jest Jest 是 Facebook 开发的 JavaScript 测试框架,适…

react native 如何

react native 如何

React Native 开发基础 React Native 是一个用于构建跨平台移动应用的框架,允许开发者使用 JavaScript 和 React 编写代码,同时生成原生 iOS 和 Androi…

react中monent如何获取日期

react中monent如何获取日期

使用 Moment.js 获取当前日期 在 React 中通过 Moment.js 获取当前日期,可以直接调用 moment() 函数。它会返回包含当前日期和时间的 Moment 对象。 impor…

电脑如何安装react

电脑如何安装react

安装 Node.js 和 npm React 依赖于 Node.js 和 npm(Node Package Manager)。从 Node.js 官网下载并安装最新稳定版本,安装完成后会自动包含 np…

react moment如何使用

react moment如何使用

安装 react-moment 通过 npm 或 yarn 安装 react-moment: npm install react-moment 或 yarn add react-moment 基本…