Комментарии 9
Мемоизировать крохотный O(1) алгоритм — это genius.jpg конечно
Ну это для текущего момента О(1). А для «исторических» запросов на построение трендов будет уже O(random) (ну там бэкенд отвалился, источник курсов валют тормозит) — тут уж помемоизировать неплохо, что-нибудь.
Как правило, мемоизируется не для того, чтобы уменьшить нагрузку для высчитывания внутри текущего компонента (хотя часто и для этого то же), а для того, чтобы во вложенные компоненты передавать одну и ту же переменную, а не каждый раз высчитанную заново, чтобы предотвратить ререндер вложенных компонентов.
useMemo в данном случае сыграет, если результат (объект) передадим в пропсы жирного дочернего мемо-компонента (или вообще в контекст запихнем), экономя рендеры оного, либо там будет вычисляться что-то реально жёсткое. А если мы тут же отрендерим значения в дивах, то смысла не было, разумеется.
Все верно) в следующей статье планировал дозакрывать вопросы про мемоизации ссылки объекта и рассуждений на тему альтернативного варианта использования useMemo)
В этой хотел лишь показать, что любые вычисления не стоит мемоизировать, для многих это очевидно, но как показывает практика, далеко не для всех
В этой хотел лишь показать, что любые вычисления не стоит мемоизировать, для многих это очевидно, но как показывает практика, далеко не для всех
Порой у меня возникает мысль, чтобы было бы здорово вынести useCallback/useMemo хуки в отдельный импорт "react/advanced-hooks-you-dont-need-it"
, чтобы у неокрепших умов не возникало желания импортировать их где не попадя
В той же реактовской доке написано, что не надо оптимизировать, если явно не тормозит
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Какая настоящая цена useMemo?