Поведение useMemo между компонентами?

В моем компоненте я использую useMemo для запуска и кэширования довольно дорогой запрос во время выполнения браузера. Пока что это значительно сократило время, необходимое для последующих рендеров.

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

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

Существует ли чистый и устойчивый способ обеспечения того, чтобы запомненный результат был общим для всех вызовов одной и той же функции, независимо от экземпляра исходного компонента?
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Результат вычислений useMemo привязан к конкретному экземпляру компонента.
У вас два варианта:
1. перенести вычисления вверх по древу.
2. использовать другие инструменты для меморизации.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
26 авг. 2019, в 01:06
2000 руб./за проект
25 авг. 2019, в 23:48
4000 руб./за проект
25 авг. 2019, в 22:35
1000 руб./за проект