use-local-storage
Exposes localStorage value as react state, syncs state across opened tabs
Import
Source
Docs
Package
Usage
use-local-storage
allows using value from the localStorage
as react state.
The hook works the same way as useState
, but also writes the value to the localStorage
:
Example
Example of a color scheme toggle button that uses use-local-storage
hook
to store current color scheme in the localStorage
:
Remove value
Use removeValue
callback to clean localStorage
/sessionStorage
.
When value is removed it is reset to defaultValue
:
Browser tabs synchronization
use-local-storage
subscribes to storage event.
When state changes in one tab, it automatically updates the value in all other opened browser tabs.
You can test this feature by opening 2 tabs with Mantine docs side by side and changing the color scheme
(button on the top right or ⌘ + J
on MacOS and Ctrl + J
on Windows and Linux).
Serialize/deserialize JSON
By default, the hook will serialize/deserialize data with JSON.stringify
/JSON.parse
.
If you need to store data in local storage that cannot be serialized with JSON.stringify
– provide your own serialization handlers:
Usage with superjson
superjson is compatible with JSON.stringify
/JSON.parse
but works for Date
, Map
, Set
and BigInt
:
use-session-storage
use-session-storage
hook works the same way as use-local-storage
hook but uses sessionStorage
instead of window.localStorage
:
Definition
Set value type
You can specify value type same as in useState
hook:
Read storage value
To read value from storage without using hook, use readLocalStorageValue
/readSessionStorageValue
functions.
Functions accept the same arguments as use-local-storage
/use-session-storage
hooks: