React 数据持久化

React是单项数据流,即所有状态由父组件传递给子组件,
而子组件与父组件的数据传递过程繁琐,就不可避免的使用Redux
然而Redux数据中心store中的数据,是存在于内存中,
在网页关闭后,内存则会释放,所有状态仍需要从新请求。
例如已经登录的网站,关闭浏览器再打开,则需要从新登录,
所以,数据持久化也是一个不可避免的需求。

Cookie的特性

cookie 保存在浏览器中,是明文保存,容量不超过4K,会在HTTP请求中被自动携带,安全性差

Session

Session是保存于服务器上,容量无上限,但是需要请求服务器获取,性能较差

Web Storage

Web Storage 保存于浏览器中,容量在5M以上,不会被自动发送,安全性也就优于 cookie

综合评定: Web Storage 在性能上胜出、且容量与安全性优于cookie, 所以Web Storage是单页应用数据持久化的一个优选,

而cookie与session更适合于由服务器渲染html模板的应用


Web Storage分2种:
一、SessionStorage: 仅在当前浏览器窗口关闭之前有效
二、localStorage: 始终有效,窗口或浏览器关闭也一直保存

redux-persist 默认储存策略使用local storage

// store文件
import { persistStore, persistReducer } from "redux-persist";
// redux-persist 默认储存策略使用local storage
const persistConfig = {
  key: "root",
  storage,  // 储存策略
  whitelist: ["user"]    // 白名单,保存reducers中的 user
}

// 再次包装 rootReducer 
const persistedReducer = persistReducer(persistConfig, rootReducer)
posted @ 2021-09-28 22:30  _Wake  阅读(1008)  评论(0)    收藏  举报