Зачем использовать redux-persist вместо ручного сохранения состояния в localStorage?

Другой способ спросить: если вы действительно хотите запустить свое приложение только с данными, сохраненными в localStorage (регидратация), и сохранить каждое изменение состояния редукции в localStorage (persist), используйте redux-persist лучше использовать ваше собственное решение, например Дэн Абрамов объясняет здесь?

Я понимаю, что redux-persist поставляется с множеством других функций, и я сам начал использовать его, чтобы иметь возможность использовать redux-persist-crossstab (чтобы иметь возможность обрабатывать изменения между приложениями, работающими на разных вкладках), но мне интересно, если это излишний, чтобы использовать его в самом простом сценарии. Тем более, что это сложнее понять, и иногда возникают забавные вещи, например, случайный вызов persist / REHYDRATE.

Я упускаю здесь что-нибудь очевидное? Спасибо


person mezod    schedule 11.03.2018    source источник


Ответы (1)


Использование redux-persist зависит от варианта использования приложения.

Во-первых, позвольте мне выделить некоторые из основных функций redux-persist

  • Использование PersistGate автоматически обеспечивает задержку rendering of the components до состояние получает persisted вместе с использованием для отображения компонента loading.

  • Настраиваемые функции для сохранения на основе нескольких типов, таких как persistStore, persistReducer и persistObject

  • AutoMerging из initialStates из разных состояний на основе shallow и deep уровней

  • Вероятно, самая важная особенность blacklisting и whitelisting reducers

  • Вложенное постоянство для shallow уровня persistence и deep уровня persistence

  • Сохранение с migrations для хранения разных версий redux-store.

  • Преобразуется для поддержки неизменяемого, сжатия, encrypt, filter и т. Д.

Учитывая, что application, который вы создаете, предназначен только для development целей, тогда потребуется не более PersistGate, persistStore и, вероятно, blacklist и whitelist редукторов, что по-прежнему потребует значительного объема работы , учитывая, что вы знают, что вам может понадобиться для вашего приложения.

Теперь для приложений, которые имеют production уровень и склонны к масштабированию, тогда они потребуют по крайней мере 5 / 7 функций, которые я перечислил выше. Без этого модуля вам может потребоваться установка модулей для сжатия, шифрования и многого другого, найдите способ изящно хранить разные версии redux-store, retrieve и display, которые могут подойти вашему требование, наряду с rehydration этого redux-store состояния.

Это имеет много других значений, с которыми мы столкнемся позже. Поэтому, исходя из требований проекта, я думаю, что было бы полезно использовать этот пакет для управления redux-store storage

person Pritish Vaidya    schedule 26.03.2018
comment
У меня проблема, localStorage никогда не обновляется! - person Dimitri Kopriwa; 04.04.2019
comment
Возможно, вам придется опубликовать свой код или задать отдельный вопрос, чтобы разобраться в деталях. - person Pritish Vaidya; 13.07.2019