создание функций — не лишние?
поясни как это здесь роляет
создание функций условно-бесплатное - предыдущий инстанс соберется garbage collector'ом, а какие-то компоненты "лишний" раз перерендерятся. оба эти процесса занимают цпу useCallback в свою очередь предотвращает пересоздания и перерендеры, но это кеш. кеши надо где-то хранить (подсказка: в оперативке) и кроме того с кешом надо сверяться при каждом рендере (пересчитывать ключ кеша), чтоб достать результаты, что тоже требует цпу. во многих случаях сумма ресурсов во втором варианте превышает сумму ресурсов в первом
это ж что за случаи такие, что кеш > работы
не поверишь, как часто я вижу такие useCallback и useMemo
реально получилось что-то ускорить убрав useCallback/memo?
нет задачи "ускорить убрав". юзколлбек - это оптимизация. первое правило оптимизации - не оптимизировать преждевременно
я в плане того, что помимо того, что в реакте происходит и далее в reactdom, там чтобы перерисовать что-нибудь на экране - дофига всего происходит это надо на flamegraph-ах смотреть профит одного над другим
с таким подходом я согласен. но большинство ничего про флеймграф не слышали, а просто оборачивают все
В смысле
Или ты из тех кто думает что благодаря юз колбеку не создается функция?)
Функция-то создается? Чего от темы уходить?
Если фунция всегда одна, то делаю вывод, что один раз создаётся
Это хуйня какая-то :)
Что)
да, хороший пример, создаются функции
А если я эту функцию заинлайню, что будет?
ток в таком случае они действительно могут быть гарбадж коллектором сразу собраны, в отличие от ситуации когда их в другие компоненты передали
Разница в чем?
Тут нет разницы, даже если оно по дереву 500 раз прокинется - соберется потом прошлый экземпляр
если куда-то передали то убивать нельзя, не?
Ну вот, а по факту разницы никакой)
Обсуждают сегодня