reactive-localstorage
Version:
A reactive localStorage with no dependency
65 lines (45 loc) • 1.37 kB
Markdown
A reactive localStorage with no dependency
```bash
yarn add reactive-localstorage
```
```bash
npm i -S reactive-localstorage
```
* inject window.localStorage / window.sessionStorage
* Emit changes from same window
* Emit external changes
Changes from `reactive-localstorage` or other pages will be emitted as events
```js
import localStorage, { localStorage } from 'reactive-localstorage';
localStorage.on('change', (key, value) => {
console.log(`key ${key} changed to ${value}`);
});
localStorage.setItem('foo', 'bar');
// print key foo changed to bar
```
It also works with window.localStorage
```js
window.localStorage.setItem('foo', 'alice');
// print key foo changed to alice
```
You can also trigger changes manually, especially when you have other sources that manage localStorage.
```js
localStorage.feed('foo', 'bob');
// print key foo changed to bob
```
SessionStorage is also supported
```js
import { sessionStorage } from 'reactive-localstorage';
sessionStorage.on('change', (key, value) => {
console.log(`key ${key} changed to ${value}`);
});
sessionStorage.setItem('foo', 'bar');
// print key foo changed to bar
```
- [mobx-localstorage](https://github.com/aihornmac/mobx-localstorage)
- [rx-localstorage](https://github.com/aihornmac/rx-localstorage)