Встречается на собеседованиях • сегодня

Можно ли сделать обертку над hook для использования зависимостей с глубоким сравнением

Да, можно создать кастомный хук для глубокого сравнения зависимостей. Используем useDeepCompareEffect из библиотеки use-deep-compare-effect или реализуем свой вариант:

js
import { useRef, useEffect } from 'react';
import isEqual from 'lodash/isEqual';

function useDeepCompareEffect(callback, dependencies) {
const currentDepsRef = useRef();

if (!isEqual(currentDepsRef.current, dependencies)) {
currentDepsRef.current = dependencies;
}

useEffect(callback, [currentDepsRef.current]);
}

text

Пример использования:
```js
useDeepCompareEffect(() => {
  // эффект сработает только при глубоком изменении объекта
}, [someDeepObject]);

Важно: глубокое сравнение может быть дорогим для больших объектов, используйте с осторожностью. Для простых случаев лучше нормализовать данные или использовать примитивы.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы