Why use redux-persist over manually persisting state to localStorage?

。_饼干妹妹 提交于 2019-12-04 23:47:15

问题


Another way to ask would be, if you really only want to start your app up with the data saved in localStorage (rehydrate) and save every redux state change to localStorage (persist) is using redux-persist any better to using your own solution like Dan Abramov explains here ?

I understand redux-persist comes with a lot of other features, and I myself started using it to be able to use redux-persist-crosstab (to be able to deal with changes between apps running in different tabs), but I wonder if it's overkill to use it for the most basic scenario. Especially since it's harder to understand and sometimes does funny stuff, like calling persist/REHYDRATE randomly.

Am I missing anything obvious here? Thanks


回答1:


The usage of redux-persist depends upon the use case of the application.

First, let me highlight some of the main features of redux-persist

  • Usage of PersistGate which automatically provides a delay in rendering of the components until the state gets persisted along with the usage to show the loading component.

  • Custom functions to persist based on multiple types such as persistStore, persistReducer and persistObject

  • AutoMerging of the initialStates from the different states based on shallow and deep levels

  • Probably the most important feature of blacklisting and whitelisting the reducers

  • Nested Persistence for shallow level persistence and deep level persistence

  • Persisting with migrations to store different versions of the redux-store.

  • Transforms to support immutable, compression, encrypt, filter, etc.

Considering the application you build is just for development purposes, then it would require at most PersistGate, persistStore and probably blacklist and whitelist of the reducers, which would still be considerable amount of work considering that you are aware what you might need for your application.

Now for the applications that are production level and are prone to scaling, then it would be requiring at least 5 / 7 features that I have listed above. Without this module you might need to install modules for compression, encryption and much more, find a way to gracefully store different versions of the redux-store and retrieve and display what might fit your requirement, along with the rehydration of that redux-store state.

There are many more implications to this, which will be encountered later on. Therefore based on the requirements of the project, I think it would be beneficial to use this package, to manage the redux-store storage



来源:https://stackoverflow.com/questions/49222396/why-use-redux-persist-over-manually-persisting-state-to-localstorage

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!