Saat membuat aplikasi web menggunakan metode ini untuk menambahkan cache penyimpanan lokal.
Misalkan kita mulai dengan:
const [state, dispatch] = React.useReducer(
reducer,
initialState
)
sebagai langkah pertama kita membuat metode yang mengambil reducer dan keluaran yang lain
const withLocalStorageCache = reducer => { return (state, action) => {
const newState = reducer(state, action);
localStorage.setItem("my-state", JSON.stringify(newState));
return newState;
}};
dan kita membungkus reducer kita dengan itu sebelum meneruskan hasilnya ke hook useReducer .
const [state, dispatch] = React.useReducer(
withCache(reducer),
initialState
)
Dan akhirnya kami mengganti initialState dengan versi cache terbaru:
const [state, dispatch] = React.useReducer(
withCache(reducer),
localStorage.getItem("my-state")
)
Satu baris kode diubah dan 5 baris baru dan seluruh negara disinkronkan dengan localStorage.
Kita dapat membatasi caching kita hanya pada bagian-bagian tertentu dari negara alih-alih keseluruhan objek negara. Dan batasi pembaruan pada cache dengan tindakan atau status. Tapi kami akan meninggalkan itu sebagai latihan untuk pengguna.