在React项目中,我们经常通过redux和react-redux来存储和管理全局数据。但是,当通过redux存储全局数据时,就会出现问题。如果用户刷新网页,通过redux存储的全局数据将被完全清空,比如登录信息。
这时,我们就有了全局数据持久存储的需求。首先我们想到localStorage,它是没有时间限制的数据存储,通过它我们可以实现数据的持久存储。
然而,在使用redux管理和存储全局数据的基础上,使用localStorage读写数据不仅工作量巨大,而且容易出错。那么有没有结合redux来实现持久化数据存储功能的框架呢?当然是redux-persist。Redux-persist将Redux存储中的数据缓存到浏览器的localStorage中。
redux-persist的使用
1.减速器和动作的处理保持不变,只需要修改生成的商店代码如下
从' redux '导入{createStore}从' import reducers '导入./reducers/index从“redux-persist”导入{persistStore,persist reduce };从“redux-persist/lib/storage”导入存储;从“redux-persist/lib/state converter/automergelevel 2”导入automergelevel 2;const persist config={ key : ' root ',storage:storage,state converter 3360 automergelevel 2//检查“合并进程”的详细信息};const myPersistReducer=persistReducer(persistConfig,Reducers)const store=create store(myPersistReducer)export const persister=persist store(store)export default store 2。在index.js中,PersistGate标记被用作网页内容的父标记
从“React”导入React;从“react-dom”导入ReactDOM从“react-redux”导入{Provider}“从导入存储”。/redux/store/store“从导入{persistor}”。/redux/store/store '从' redux-persist/lib/integration/react '导入{ persist gate };Reactdom.render(提供程序存储={ store } persist gate loading={ null } persistor={ persistor } {/* web内容*/}/persistgate/provider,document . getelementbyid(' root '));这就完成了通过redux-persistent实现React持久本地数据存储的简单应用
3.最后,我们在浏览器中调试并查看本地存储的缓存数据
发现数据已经存储在localStorage中,网页刷新时redux中的数据不会丢失
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。