написать хук, который принимает переменное количество аргментов через rest-синтаксик, далее я хочу мемоизировать какие то вычисления от этих аргументов, допустим с помощью useMemo. В таком случае хуку useMemo я должен указать массив аргументов в массив зависимостей. Однако, как я выяснил из исходников под капотом сравнение зависимостей с предыдущего рендера и текущего происходит через полифил фукнции Object.is. Она, как я понимаю, не подходит для сравнения массивов. Вызов Object.is([1], [1]) вернет false. Из этого я прихожу к выводу, что мемоизация работать не будет. Можно ли все таки мемоизировать такую штуку, и если да, то как? Извините за стену текста)
Lifehack от Абрамова - JSON.stringify(value). И результат выражения в зависимости
В таком случае мемоизация мне вообще не нужна, скорее всего, думаю, что JSON.stringify будет накладнее, чем просто каждый рендер считать эту логику. Спасибо.
Вы путаете, мемоизацию, и хак на объекты и массивы в зависимостях хуков.
господи, и вправду)
Обсуждают сегодня