Хук useShallow
из Zustand помогает уменьшить количество ненужных ререндеров в приложении, оптимизируя доступ к данным. Вот как это можно реализовать:
-
Установка и настройка: Убедитесь, что у вас установлен Zustand и React DevTools для визуализации ререндеров.
-
Использование: Хук
useShallow
позволяет выбирать только те части состояния, которые нужны компоненту, избегая лишних ререндеров.
// components/SearchInput.tsx
import React from 'react';
import { useShallow } from 'zustand/react/shallow';
import useCoffeeStore from '../store';
const SearchInput = () => {
const { searchText, setText } = useCoffeeStore(
useShallow((state) => ({
searchText: state.searchText,
setText: state.setText,
}))
);
return (
<input
type="text"
value={searchText}
onChange={(e) => setText(e.target.value)}
placeholder="Поиск..."
/>
);
};
export default SearchInput;
- Изменение параметров поиска: Ререндерится только компонент списка, а не вся страница.
Основные моменты:
useShallow
позволяет выбирать только необходимые части состояния, избегая лишних ререндеров.- Локальный вызов стора: Каждый компонент использует только те данные, которые ему нужны.
- Улучшение производительности: Уменьшение количества ререндеров повышает производительность приложения.
Таким образом, useShallow
помогает оптимизировать доступ к данным и уменьшить количество ненужных ререндеров.