Зачем на самом деле нужен хук useCallback

Зачем на самом деле нужен хук useCallback

40,306 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

Igor Z
Igor Z - 13.11.2023 12:30

а если в Hook вынести?

Ответить
NeoCoding
NeoCoding - 12.11.2023 15:58

пять лет уже постоянно что-то делаю на реакт но до этого материала до сих пор не дорос..

Ответить
Roman Shevchenko
Roman Shevchenko - 25.10.2023 12:43

Спасибо огромное, это лучшее объяснение useCallback во всех интернетах! Но я только одного не понял - зачем линтер требует добавить logUpdate в массив зависимостей во втором примере? Какая тут логика?

Ответить
Султанби Жолдыбай
Султанби Жолдыбай - 01.10.2023 00:01

Ждем про useMemo)

Ответить
user_hruser
user_hruser - 20.09.2023 22:13

Сделай такой де пример, и предавай колбэк в таблицу и посмотри как будет рендерится или нет

Ответить
Mkhitar Muradyan
Mkhitar Muradyan - 13.09.2023 23:48

fantastic !

Ответить
Татьяна В.
Татьяна В. - 28.08.2023 11:57

Михаил, это были очень познавательные 8 минут)) Спасибо, наконец-то всё по полочкам с useCallback. На проектах все, в том числе я, его использовали неправильно.

Ответить
Николай Миров
Николай Миров - 21.08.2023 00:52

До этого видео я не мог понять для чего useCallback и как ей воообще пользоваться. Видео супер полезное. Частно тут нахожу что-то для себя, спасибо! (Самоучка)

Ответить
Сергей
Сергей - 17.08.2023 13:39

отлично, очень ясное видение ситуации, спасибо!

Ответить
Владислав Пикинер
Владислав Пикинер - 29.07.2023 10:59

спасибо за сложные темы простым языком)

Ответить
Avin Lambrero
Avin Lambrero - 07.07.2023 09:44

Забыли сказать про ментальную нагрузку) Минимальный оверхед который дает useCallback не стоит возможных проблем с производительностью в местах где забудешь обернуть в useCallback. Так что с практической точки зрения всё лепить в useCallback имеет смысл

Ответить
K А
K А - 02.07.2023 10:12

видел как некоторые люди добавляют useCallback для callback отправленных в addEventListener, я так понимаю это излишне?

Ответить
Mrakobes
Mrakobes - 13.06.2023 13:23

Отличное объяснение, спасибо!

Ответить
Яна Пронько
Яна Пронько - 24.05.2023 12:34

Спасибо, наконец-то дошло, для чего этот хук нужен! Хотя второй вариант я использовала, благодаря подсказкам eslint(, но без понимания особого)

Ответить
Maa obzor
Maa obzor - 19.05.2023 23:42

В первом случае хватило бы только React.memo, повторных ререндеров компоненты не происходило бы

Ответить
Elstar
Elstar - 15.05.2023 10:15

Есть еще коллбэк-рефы, когда функция принимает как аргумент node (dom-узел) и присваивается атрибуту ref в JSX. Используется это обычно для передачи dom-узла кастомному хуку. useRef не всегда тут может помочь, ибо useEffect на него не реагирует, а вот коллбэк-реф он увидит.

Ответить
Eugene Kaler
Eugene Kaler - 05.05.2023 01:34

Михаил, спасибо Вам за ваши труды!
С удовольствием смотрю Ваши курсы на Udemy.

Планируете ли Вы какой-нибудь новый курс?
Очень хотелось бы, раскрыть тему CI/CD Jenkins.

Ответить
black label
black label - 03.05.2023 23:11

спасибо очень полезная инфа что он юзается в тандеме с мемо

Ответить
Анатолий Горбов
Анатолий Горбов - 02.05.2023 11:50

Михаил как всегда отличное видео и понятное! Спасибо

Ответить
Artur Zahorskyi
Artur Zahorskyi - 02.05.2023 10:12

Спасибо за объяснение!

Ответить
Max Solo
Max Solo - 01.05.2023 21:22

Михаил, можешь сделать похожий обзор про useMemo? Понимаю, что там похожая ситуация, но всё же, возможно есть свои нюансы

Ответить
Artmen Boss
Artmen Boss - 01.05.2023 09:43

В доке еще пишут можно все кастомные хуки в useCallback оборачивать

Ответить
Sergey Zatsepin
Sergey Zatsepin - 29.04.2023 15:47

Ну вот эти слова про "дорогую операцию" ничем не подкрепленные, вообще не айс. Сам то проверял или так просто, услышал от кого-то, кто сам услышал от кого-то и т.д., и так вы просто повторяете бездумно друг за другом? Что там с holy js кстати, едешь/не едешь?

Ответить
Serj Denisov
Serj Denisov - 29.04.2023 14:17

Михаил, спасибо за информацию!!!

Ответить
Александр Сидоров
Александр Сидоров - 29.04.2023 09:17

Михаил, спасибо.
Всё просто и понятно !!!

Ответить
Вячеслав Тихонов
Вячеслав Тихонов - 28.04.2023 07:04

1е нормальное объяснеие🙏😀

Ответить
Олег Балтаг
Олег Балтаг - 28.04.2023 00:05

Можно забить на useCallback, если ты передаешь свой колбек в какой-то самый простой компонент. Или когда данные, от которых он зависит, постоянно обновляются, и ты точно знаешь как он устроен внутри. А вот взаимодействие с DOM, это уже дорогая операция, это дороже чем инициализировать функцию, и чем 10 функций. А еще очень часто есть много готовых компонентов и компонентов из сторонних модулей, и как на это повлияет использование useCallback, заранее не известно. А выстрелить это может в самый неподходящий момент, заблокировать юзеру страницу, сожрать всю память или вылететь с переполнением стека вызовов. По этому, из соображений безопасности и здравого смысла, использовать useCallback надо для каждой объявленной внутри компонента функции, которая зависит от данных в этом компоненте. В противном случае ей там делать нечего, и она должна быть объявлена вне компонента.

Ответить
Alex Voytko
Alex Voytko - 27.04.2023 22:03

отличный урок! Сам никогда не понимал толком, знал в теории, но на практике - профан, давай еще про useMemo, в чем разница с useCallback?

Ответить
breaking_benjamin
breaking_benjamin - 27.04.2023 15:21

Привет, спасибо за видео! Наконец-то кто-то правильно объяснил, потому что все видео на эту тему содержат неправильную информацию и какие-то глупые надуманные примеры, не имеющие отношения к реальному миру.

Ответить
jam jam
jam jam - 27.04.2023 10:20

👏👍

Ответить
Andrey Rudin
Andrey Rudin - 27.04.2023 09:37

спасибо, очень понятно.

Ответить
sphinx :P
sphinx :P - 27.04.2023 01:59

Просто супер доступно объяснил. Спасибо большое!!!

Ответить
STELLS541
STELLS541 - 27.04.2023 00:54

Очень годно))

Ответить
necelentano
necelentano - 27.04.2023 00:01

Спасибо Михаил! Полезное видео 👍

Ответить
Zubenko Petrovich
Zubenko Petrovich - 26.04.2023 22:58

господа, сколько не смотрел не могу понять разницу между useMemo, useEffect, useCallback. Даже после просмотра этого видео не до конца понял всю ситуацию с useCallback. Если не сложно, можете подробно разъяснить или скинуть ссылку на какой-то источник с подробным объяснением.

Ответить
lool
lool - 26.04.2023 22:52

залогировал бы время отработки каждого из вариантов, иначе не очевидные у тебя утверждения на самом деле про скорость работы

Ответить
Roman Med
Roman Med - 26.04.2023 22:46

если можно о useEffect но с акцентом на помещение используемой в нем функции в массив зависимостей. линтер этого требует. но вот сегодня поместил и получил кольцевую обработку. как в видео. в случае когда мы не можем поместить функцию внутрь эффекта. например она вообще берется из собственного хука.

Ответить
V.Demchenko
V.Demchenko - 26.04.2023 22:19

Кайф🎉 можно еще видео подробное по хукам?

Ответить
Василий Коннов
Василий Коннов - 26.04.2023 19:52

Очень крутой 😎👍

Ответить
Алеша Алексей
Алеша Алексей - 26.04.2023 18:01

База))

Ответить
Oleg Sas
Oleg Sas - 26.04.2023 17:07

Михаил, спасибо большое! Просто, понятно, интересно.

Ответить
Vasily Pavlov
Vasily Pavlov - 26.04.2023 16:06

а как же removeEventListener, там необходимо передавать функцию с изначальной ссылкой, и соответственно для этого мы можем callback функцию, передаваемую в addEventListener обернуть в useCallback - чтобы не потерять ссылку на нашу изначальную callback функцию)

Ответить
Prime TV
Prime TV - 26.04.2023 15:45

Круто, можно про useMemo так же по полочкам разложить?)

Ответить
Michael Veselov
Michael Veselov - 26.04.2023 14:41

Спасибо, Михаил, у Вас наконец-то появились нормальные коллеги. Судя по объяснению данного хука в рамках курса по Реакт, достойных и мотивирующих коллег у Вас на тот момент не было!))

Ответить