#android #ios #react-native #redux #react-redux
#Android #iOS #react-native #сокращение #react-redux
Вопрос:
Я использую axios для вызовов API и асинхронное хранилище для хранения некоторых деталей, таких как профиль пользователя и все. Но асинхронное хранилище кажется очень медленным.
Для работы ключевых функций моих приложений требуется Интернет, но на многих экранах будет отображаться контент, который не обновляется в режиме реального времени или всегда. Как сохранить всю эту информацию в локальном режиме, чтобы при запуске нового сеанса приложения на экранах отображалась полная загрузка вместо запроса данных из API и отображения загрузчика, обновление информации может происходить в фоновом режиме. Как и все основные приложения, они не загружают уже загруженный контент, а каким-то образом сохраняют его на самом устройстве, но в то же время позволяют обновлять, если поступает новая информация.
Какая-то база данных в приложении для хранения всей информации будет работать? если да, то как лучше всего использовать Redux, реализацию Axios, которая работает быстро и не так медленно, как асинхронное хранилище?
Комментарии:
1. для меня асинхронное хранилище работает довольно хорошо, я обычно создаю экран загрузки, где я предварительно загружаю хранилище redux, и они переходят в основное приложение,
Ответ №1:
Асинхронное хранилище должно работать нормально. Чтобы реализовать это, вам нужно будет убедиться, что данные API используются только при первом запуске приложения, а не при последующих запусках. Затем добавьте функцию обновления, которая проверяет наличие обновлений. Вот примерная реализация.
-
Когда приложение загрузится, попробуйте получить ваши данные из локального хранилища. Если это первый запуск, в хранилище ничего нет, поэтому извлеките данные из API.
-
Как только данные возвращаются. Сохраните его в локальном хранилище для следующего запуска приложения. Отображение данных.
-
Если данные существуют в локальном хранилище (последующие запуски), вам нужно будет отправить вызов API для получения последних данных. Как только данные вернутся, поместите их в локальное хранилище. Убедитесь, что это не блокирующий вызов. Вам решать, хотите ли вы обновить текущие данные на экране.
Комментарии:
1. Итак, нет необходимости в реализации БД, а асинхронное хранилище выполняет свою работу, просто увеличивая ограничения по размеру?
2. похоже, что на Android существует ограничение в 6 МБ, без ограничений в iOS.
Ответ №2:
Я работал над несколькими проектами, используя библиотеку redux-persist. Короче говоря, он кэширует информацию, которую вы обрабатываете с помощью redux, не беспокоясь о сохранении информации в асинхронном хранилище.
Если вы действительно не хотите использовать асинхронное хранилище и уже используете Redux, я думаю, это идеальный вариант. Я работаю с этой библиотекой около 2 лет, и до сих пор у меня не было никаких проблем.
Для получения дополнительной информации посетите: https://github.com/rt2zz/redux-persist