1.2.2 • Published 4 years ago

rlax v1.2.2

Weekly downloads
3
License
MIT
Repository
github
Last release
4 years ago

Rlax

Build Status Coverage Status npm.io npm.io npm.io npm.io

Rlax is a super easy state with persistence for react.

Why this library?

  • Redux is too complex for a small project.
  • Use react's context api to make a global state is easy, however, it will cause redundant rerender in every component that use this context, even nothing changed.

Why you might want this:

  • It's tiny: ~200 loc.
  • It has minimal and intuitive api.
  • You just want a global state manager with persistence out of box.
  • TypeScript support.

Why you might not want this:

  • Currently only working with React 16.8.0 and above (Rlax is using React Hooks).
  • The features of Rlax is not as rich as Redux's.

Installation

npm install rlax --save

How to use?

Initialize store In the entry file of your project.

import { initStore } from "rlax";

rlax.initStore({
  // initialize your data here.
  data: {
    key1: value1,
    key2: value2,
    key3: value3,
    ...
  },

  // persistence setting.
  // you can use this to tell Rlax to automatically persist
  // your data into localStorage or sessionStorage before the reload of your page,
  // or just no persistence.
  persist: "session", // you can use "none", "local" and "session" here.
});

Use the data you want in your component.

import { useStore } from "rlax";

function MyComponent() {
  // give a key name to the function,
  // it will return the value you want.
  const value1 = useStore("key1");

  // use your value.
  ...
}

Or just get the data if it's outside the component.

import { getStore } from "rlax";

const value1 = getStore("key1");

if (typeof value1 !== undefined) {
  // use your value.
}
...

Set data when you want to change it.

import { setStore } from "rlax";

// any where you want in you project.

const newValue1 = getYourNewValueSomehow();
setStore("key1", newValue1);

// or using a setter callback function to get previous value.
setStore("key1", (prev) => {
  const newValue = doSomethingWithPreviousValue(prev);
  // remember to return new value.
  return newValue;
});

// after setting new value,
// all the component that use this value will rerender automatically,
// and your view will get update.

If you want to clear all the things in the store, just call:

import { clear } from "rlax";

// this will delete the the imformation Rlax set
// in the web storage of your browser (if persist is set),
// and all the data in memory.
clear();
1.2.2

4 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.0.9

4 years ago

1.0.10

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.3

4 years ago

1.0.0

4 years ago