Комментарии:
а если в Hook вынести?
Ответитьпять лет уже постоянно что-то делаю на реакт но до этого материала до сих пор не дорос..
ОтветитьСпасибо огромное, это лучшее объяснение useCallback во всех интернетах! Но я только одного не понял - зачем линтер требует добавить logUpdate в массив зависимостей во втором примере? Какая тут логика?
ОтветитьЖдем про useMemo)
ОтветитьСделай такой де пример, и предавай колбэк в таблицу и посмотри как будет рендерится или нет
Ответитьfantastic !
ОтветитьМихаил, это были очень познавательные 8 минут)) Спасибо, наконец-то всё по полочкам с useCallback. На проектах все, в том числе я, его использовали неправильно.
ОтветитьДо этого видео я не мог понять для чего useCallback и как ей воообще пользоваться. Видео супер полезное. Частно тут нахожу что-то для себя, спасибо! (Самоучка)
Ответитьотлично, очень ясное видение ситуации, спасибо!
Ответитьспасибо за сложные темы простым языком)
ОтветитьЗабыли сказать про ментальную нагрузку) Минимальный оверхед который дает useCallback не стоит возможных проблем с производительностью в местах где забудешь обернуть в useCallback. Так что с практической точки зрения всё лепить в useCallback имеет смысл
Ответитьвидел как некоторые люди добавляют useCallback для callback отправленных в addEventListener, я так понимаю это излишне?
ОтветитьОтличное объяснение, спасибо!
ОтветитьСпасибо, наконец-то дошло, для чего этот хук нужен! Хотя второй вариант я использовала, благодаря подсказкам eslint(, но без понимания особого)
ОтветитьВ первом случае хватило бы только React.memo, повторных ререндеров компоненты не происходило бы
ОтветитьЕсть еще коллбэк-рефы, когда функция принимает как аргумент node (dom-узел) и присваивается атрибуту ref в JSX. Используется это обычно для передачи dom-узла кастомному хуку. useRef не всегда тут может помочь, ибо useEffect на него не реагирует, а вот коллбэк-реф он увидит.
ОтветитьМихаил, спасибо Вам за ваши труды!
С удовольствием смотрю Ваши курсы на Udemy.
Планируете ли Вы какой-нибудь новый курс?
Очень хотелось бы, раскрыть тему CI/CD Jenkins.
спасибо очень полезная инфа что он юзается в тандеме с мемо
ОтветитьМихаил как всегда отличное видео и понятное! Спасибо
ОтветитьСпасибо за объяснение!
ОтветитьМихаил, можешь сделать похожий обзор про useMemo? Понимаю, что там похожая ситуация, но всё же, возможно есть свои нюансы
ОтветитьВ доке еще пишут можно все кастомные хуки в useCallback оборачивать
ОтветитьНу вот эти слова про "дорогую операцию" ничем не подкрепленные, вообще не айс. Сам то проверял или так просто, услышал от кого-то, кто сам услышал от кого-то и т.д., и так вы просто повторяете бездумно друг за другом? Что там с holy js кстати, едешь/не едешь?
ОтветитьМихаил, спасибо за информацию!!!
ОтветитьМихаил, спасибо.
Всё просто и понятно !!!
1е нормальное объяснеие🙏😀
ОтветитьМожно забить на useCallback, если ты передаешь свой колбек в какой-то самый простой компонент. Или когда данные, от которых он зависит, постоянно обновляются, и ты точно знаешь как он устроен внутри. А вот взаимодействие с DOM, это уже дорогая операция, это дороже чем инициализировать функцию, и чем 10 функций. А еще очень часто есть много готовых компонентов и компонентов из сторонних модулей, и как на это повлияет использование useCallback, заранее не известно. А выстрелить это может в самый неподходящий момент, заблокировать юзеру страницу, сожрать всю память или вылететь с переполнением стека вызовов. По этому, из соображений безопасности и здравого смысла, использовать useCallback надо для каждой объявленной внутри компонента функции, которая зависит от данных в этом компоненте. В противном случае ей там делать нечего, и она должна быть объявлена вне компонента.
Ответитьотличный урок! Сам никогда не понимал толком, знал в теории, но на практике - профан, давай еще про useMemo, в чем разница с useCallback?
ОтветитьПривет, спасибо за видео! Наконец-то кто-то правильно объяснил, потому что все видео на эту тему содержат неправильную информацию и какие-то глупые надуманные примеры, не имеющие отношения к реальному миру.
Ответить👏👍
Ответитьспасибо, очень понятно.
ОтветитьПросто супер доступно объяснил. Спасибо большое!!!
ОтветитьОчень годно))
ОтветитьСпасибо Михаил! Полезное видео 👍
Ответитьгоспода, сколько не смотрел не могу понять разницу между useMemo, useEffect, useCallback. Даже после просмотра этого видео не до конца понял всю ситуацию с useCallback. Если не сложно, можете подробно разъяснить или скинуть ссылку на какой-то источник с подробным объяснением.
Ответитьзалогировал бы время отработки каждого из вариантов, иначе не очевидные у тебя утверждения на самом деле про скорость работы
Ответитьесли можно о useEffect но с акцентом на помещение используемой в нем функции в массив зависимостей. линтер этого требует. но вот сегодня поместил и получил кольцевую обработку. как в видео. в случае когда мы не можем поместить функцию внутрь эффекта. например она вообще берется из собственного хука.
ОтветитьКайф🎉 можно еще видео подробное по хукам?
ОтветитьОчень крутой 😎👍
ОтветитьБаза))
ОтветитьМихаил, спасибо большое! Просто, понятно, интересно.
Ответитьа как же removeEventListener, там необходимо передавать функцию с изначальной ссылкой, и соответственно для этого мы можем callback функцию, передаваемую в addEventListener обернуть в useCallback - чтобы не потерять ссылку на нашу изначальную callback функцию)
ОтветитьКруто, можно про useMemo так же по полочкам разложить?)
ОтветитьСпасибо, Михаил, у Вас наконец-то появились нормальные коллеги. Судя по объяснению данного хука в рамках курса по Реакт, достойных и мотивирующих коллег у Вас на тот момент не было!))
Ответить