Встречается на собеседованиях • сегодня
В каких случаях useSelector будет вызывать перерисовку компонента
Компонент перерисуется, если возвращаемое значение useSelector изменилось по сравнению с предыдущим вызовом (проверка через ===).
Пример:
javascript
const count = useSelector(state => state.counter); // Перерисуется только если state.counter изменилсяВажные моменты:
- Примитивы сравниваются по значению
- Объекты/массивы сравниваются по ссылке
- Новый объект в селекторе вызовет лишние ререндеры:
javascript
// ПЛОХО - создаёт новый объект при каждом вызове
const {a, b} = useSelector(state => ({a: state.a, b: state.b}));
// ХОРОШО - перерисуется только если изменится a или b
const a = useSelector(state => state.a);
const b = useSelector(state => state.b);Для оптимизации можно использовать shallowEqual из react-redux или мемоизировать селекторы с помощью Reselect.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы