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)

浙公网安备 33010602011771号