Почему мне нужно использовать redux-persist с Asyncstorage? - PullRequest
0 голосов
/ 08 ноября 2018

Сначала мое приложение RN использовало только AsyncStorage для хранения параметров аутентификации для пользователя.

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

Итак, я реализовал Redux & Redux-thunk . Это работало нормально, но я заметил кое-что, что заинтриговало меня. Когда я обновлял свое приложение, я заметил, что мое избыточное состояние было не сохранено .

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

Так что мне пришлось реализовать redux-persist, используя AsyncStorage .

Мой вопрос таков: зачем мне нужно использовать redux-persist в моем приложении-реактиве, когда AsyncStorage уже по определению

простое, незашифрованное, асинхронное, постоянное , хранилище ключей-значений система, которая является глобальной для приложения.

Спасибо за ваше объяснение

Ответы [ 2 ]

0 голосов
/ 17 июля 2019

По документам:

Рекомендуется использовать абстракцию поверх AsyncStorage вместо AsyncStorage напрямую для чего-то большего, чем легкое использование, поскольку оно работает глобально.

Redux-persist - это та абстракция, которая идет поверх AsyncStorage. Это обеспечивает лучший способ хранения и извлечения более сложных данных (например, redux-persist имеет persistReducer (), persistStore ()). Кроме того, AsyncStorage по определению является просто механизм хранения. Redux-persist реализует эти полезные вышеупомянутые функции поверх любого механизма хранения, который вы выберете (https://github.com/rt2zz/redux-persist#storage-engines);, его необязательно использовать с AsyncStorage.

0 голосов
/ 17 июля 2019
  1. Redux предоставляет вам методологию для передачи некоторых данных (состояния) в вашем приложении. Другими словами, вы можете использовать согласованный поток данных (действия, создатели действий и редукторы) для обмена данными между различными компонентами вашего приложения.

  2. Эти данные (состояние) сохраняются в памяти. Он доступен, пока ваше приложение работает. Если приложение закрыто, вы потеряете его.

  3. AsyncStorage сохраняет данные в LocalStorage. Когда приложение запускается снова, вы можете извлечь сохраненные данные оттуда, чтобы предоставить пользователю доступ к любому состоянию, в котором было приложение, до его закрытия.

  4. Нет зависимости между Redux и AsyncStorage. Не все данные (состояния), которыми управляет Redux, должны быть сохранены AsyncStorage. Не все данные, которые сохраняются в AsyncStorage, должны управляться (перед сохранением) Redux.

  5. Redux и AsyncStorage - это полностью 2 разных инструмента, которые имеют разные цели. Их можно использовать вместе или по отдельности.

  6. Redux-persist - это инструмент, который использует AsyncStorage для хранения «состояния» (или его части), которым управляет Redux. Если вам не нужно сохранять это «состояние» между сеансами приложения, вы можете использовать AsyncStorage, чтобы сохранить только то, что вам нужно, например, только логин пользователя.

...