Стратегия кэширования реагирования

#reactjs #caching #react-redux

Вопрос:

Я новичок в реакциях и использую ASP.NET Основное приложение веб-API в качестве внутреннего сервера. В одном компоненте React, где я хочу отобразить большое количество данных в таблицах, которые я извлекаю из базы данных с помощью различных вызовов API. Данные должны быть актуальными для пользователей, что означает, что существует определенный интервал времени для обновления отображаемых данных. И для повышения производительности я хотел бы использовать кэш.

Я видел различные стратегии кэширования, такие как localstorage и React Redux, но я не понимаю, какая из них лучше всего соответствует моей бизнес-логике. localStorage может быть не очень хорошим вариантом, так как ему нужно каждый раз строчить и анализировать огромные данные, это слишком медленно. Я хотел бы пойти с React Redux. Я прав? Или еще какие-нибудь предложения?

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

1. Хотя ничто не мешает вам хранить объекты в состоянии восстановления, как правило, это не рекомендуется. Ваше состояние восстановления также должно быть сериализованными данными. Какой аспект «производительности» вы конкретно рассматриваете? Кэш действительно помог бы только при извлечении данных. Как только вы извлекли его и сохранили в redux, он эффективно кэшируется ( в памяти ) до перезагрузки приложения ( именно поэтому мы сохраняем/инициализируем состояние в/из localStorage ). Что вы хотите/нуждаетесь в кэшировании? Ваш вопрос немного слишком открытый/широкий, пожалуйста, постарайтесь сфокусировать его больше.

2. Я думаю, что react redux был бы лучшим вариантом, но помните, что это не цель, как использовать redux. Кроме того, React проделали большую работу над своим собственным контекстным api (Redux использует этот api), и теперь более рекомендуется использовать контекст для большинства проектов. reactjs.org/docs/context.html Кроме того, вы можете реализовать анимацию загрузки до того, как таблица закончит выборку данных. Существует несколько пакетов npm, которые делают это так npmjs.com/package/react-async-table Это также может выполнить свою работу.

3. Redux-это менеджер состояний, и вы будете терять данные после каждого обновления или открытия одной страницы на новой вкладке… вы можете сохранять данные с помощью localStorage. На мой взгляд, вам не следует часто кэшировать обновляемые и свежие данные! потому что в этом случае вам не нужно извлекать какие-либо старые данные.