Станет ли memo() дэфолтным поведением реакт компонента?

preview_player
Показать описание
Готовясь к выпуска по memo(), я часто натыкался на разного рода обсуждения. Мол выгоднее же обернуть абсолютно все компоненты в memo() в итоге ты улучшишь перфоманс. Первая мысль которая проскочила у меня, эта идея звучит крайне странно. Но немного поразмыслив, я понял, что эта идея не лишена смысла...

Поддержать Айти Синяка можно здесь:

00:00 Анонс темы
00:32 Изучаем пост на StackOverflow
02:30 Почему такой вопрос возник?
03:35 Изучаем github issue
04:35 Так станет ли memo дэфолтным компонентом?
05:08 Пример когда memo не работает
06:30 Двойное оборачивание в shallowEqual
07:06 Ищем подтверждение теории
08:35 Подытожим
09:12 Подписывайтесь!

-------------------------

Данный канал создан для инициирования бесед на различные темы IT сферы (социальные / технические), а также для тех кому короткая видео выжимка статьи, выступления на конференции или же просто личных мыслей, являются более удобным форматом
Рекомендации по теме
Комментарии
Автор

Бро, у тебя отличный контент! Не останавливайся плиз =)

MrOzziris
Автор

Прекрасно !!!
Очень очень качественно !)

valeriipimenov
Автор

Блин, а я даже не задумывался об этом. Спасибо ^^

eqfusdz
Автор

какой крутой блог у Эриксена. странно, что раньше на него не попадал. спасибо!

andreyalexandrov
Автор

Привет, спасибо за твой труд, очень актуальная тема. В продолжении, может порассуждаем на тему "следует ли оборачивать ВСЕ функции передаваемые в качестве пропсов в useCallback?"

Dmitriy-bqxh
Автор

5:45 вот тут очень запутанно кто будет а кто не будет, и почему.

Наверное стоило бы сделать zoom-in и показать почему.

AbraKadabra
Автор

канал на котором не возможно поставить дизлайк

underpog
Автор

Крутецкий уникальный контент на русском ютубе !

AbraKadabra
Автор

Врапеер перестает перерендериваться, если завернуть вызов компонента с пропсами в useMemo() ))

const memoChildren = useMemo(()=><MemoChildren someProps={someProps}/>, [])

<MemoWrapper>
{memoChildren}
</MemoWrapper/>

it-coding
Автор

Не совсем понял этот момент
<MemoWrapper>
<MemoChildWrapper />
</MemoWrapper/>

Почему MemoWrapper будет перерендериваться, раз он Memo? Я не совсем понял фразу про 'инстанс массива'. Синяк, помоги плиз разобраться)

AndreyEricksonGame
Автор

автор этого поста ёмаё. Это сам Марк Эриксон)

kinderhero
Автор

"Ты заявляешь такие есерьезные вещи. Но ты делаешь это без ссылок" - по-моему такое было в крестном отце. Там еще кого-то за это убили

mtyEyes
Автор

Остается другой вопрос: зачем реакт ререндерит компонент без пропсов и чилдренов, если перерендерился родитель? Там даже сравнивать нечего же.

hyposlasher
Автор

Тогда интересно, а почему бы не сделать мемо по умолчанию, но с возможностью отключать эту проверку где это необходимо (где shallowEqual всегда будет возвращать false) 🧐

KycokFt