Вопрос проверяет понимание принципов разделения ответственности и производительности при фильтрации данных в React-приложениях.
Фильтрацию данных в React-приложении рекомендуется выполнять на уровне данных (например, в Redux store, серверном API или хуке useMemo), а не непосредственно в компоненте. Это следует из принципа разделения ответственности: компонент отвечает за отображение, а логика обработки данных должна быть вынесена отдельно.
function UserList({ users }) {
const [filter, setFilter] = useState('');
const filteredUsers = users.filter(u => u.name.includes(filter)); // ❌ Фильтрация в компоненте
return <div>...</div>;
}// В Redux селекторе или хуке
const useFilteredUsers = (users, filter) => {
return useMemo(() => users.filter(u => u.name.includes(filter)), [users, filter]);
};
function UserList({ users }) {
const [filter, setFilter] = useState('');
const filteredUsers = useFilteredUsers(users, filter); // ✅ Логика вынесена
return <div>...</div>;
}Вывод: Фильтрацию следует выполнять на уровне данных, чтобы сохранить производительность, упростить тестирование и сделать код более модульным. Это особенно актуально для больших списков или сложных условий фильтрации.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию