An open API service indexing awesome lists of open source software.

https://github.com/wonism/use-memory-storage

React hooks for memory storage is sharing session storage between multiple tabs.
https://github.com/wonism/use-memory-storage

hooks react reactjs session-storage sessionstorage

Last synced: 6 months ago
JSON representation

React hooks for memory storage is sharing session storage between multiple tabs.

Awesome Lists containing this project

README

        

# Use Memory Storage
> React hooks for memory storage is sharing session storage between multiple tabs.
> Ideas from the [blog
> post](https://blog.guya.net/2015/06/12/sharing-sessionstorage-between-tabs-for-secure-multi-tab-authentication/)
> written by [@guy-a](https://github.com/guy-a)

[![npm version](https://badge.fury.io/js/use-memory-storage.svg)](https://badge.fury.io/js/use-memory-storage)
[![Build Status](https://travis-ci.org/wonism/use-memory-storage.svg)](https://travis-ci.org/wonism/use-memory-storage)

## Installation
```sh
$ npm i -S use-memory-storage
```

## Use cases
```tsx
import React, { useState, useEffect, useCallback } from 'react';
import useMemoryStorage from 'use-memory-storage';

const KEY = 'TEST/useMemoryStorage';

const Demo: React.FC = () => {
const [token, setToken] = useState(null);
useMemoryStorage(KEY, token, setToken);

const handleClick = useCallback(() => {
setToken(Date.now().toString());
}, []);

useEffect(() => {
const storedData = sessionStorage.getItem(KEY);

if (storedData != null) {
setToken(storedData);
}
}, []);

useEffect(() => {
if (token != null) {
window.sessionStorage.setItem(KEY, token);
}
}, [token]);

return (



Click button to generate token in session storage!



stored data : {token}




Click


);
}

export default Demo;
```