react-remember

1.3.11 • Public • Published

🤔 React Remember

Persistent global state in React

👉 Demo 👈

npm version GitHub license

Include the useRemember hook in a component:

const [the, remember] = useRemember();

From anywhere in your application:

remember({ answer: 42 });

From anywhere else in your application:

<div>{the.answer}</div>
// displays 42

This value is saved in local storage and will persist until you change or reset it.

Installation & Usage

Install with yarn add react-remember or npm install react-remember.

Wrap your top-level app with the Rememberer™:

import Rememberer from "react-remember";
 
const App = () => {
  return <Rememberer>{/* normal app.js stuff */}</Rememberer>;
};
ReactDOM(<App />, root);

Now you can useRemember in any component. The data will be available everywhere, updatable from anywhere and will persist between refreshes.

// Button.js
import { useRemember } from "react-remember";
const Button = () => {
  const [the, remember] = useRemember();
  return (
    <button onClick={() => remember({ count: ++the.count || 1 })}>
      click me
    </button>
  );
};
 
// Info.js
import { useRemember } from "react-remember";
const Info = () => {
  const [the, remember] = useRemember();
  return <div>Button clicked {the.count} times</div>;
};

Save to URL

The url prop will store the state in the url rather than localstorage.

<Rememberer url>...</Rememberer>

Defaults

Defaults are the values that are instantiated on first launch.

<Rememberer
  defaults={{
    count: 42,
    user: {}
  }}
>
  ...
</Rememberer>

Explorer

View a list of what's been remembered by adding the show property to the Rememberer.

<Rememberer show defaults={{ number: 1 }}>
  ...
</Rememberer>

FAQ

I thought global state was bad.

Yes.

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
1.3.1143latest

Version History

VersionDownloads (Last 7 Days)Published
1.3.1143
1.3.101
1.3.91
1.3.81
1.3.71
1.3.61
1.3.51
1.3.41
1.3.31
1.3.21
1.3.11
1.3.01
1.2.91
1.2.81
1.2.71
1.2.61
1.2.51
1.2.41
1.2.31
1.2.21
1.2.11
1.2.01
1.1.111
1.1.101
1.1.91
1.1.81
1.1.71
1.1.61
1.1.51
1.1.31
1.1.21
1.1.11
1.1.03
1.0.11
1.0.01

Package Sidebar

Install

npm i react-remember

Weekly Downloads

79

Version

1.3.11

License

MIT

Unpacked Size

528 kB

Total Files

6

Last publish

Collaborators

  • domfyi