6.0.21 • Published 2 years ago

revars v6.0.21

Weekly downloads
910
License
MIT
Repository
github
Last release
2 years ago

Revars logo

npm GitHub GitHub last commit GitHub top language code style: prettier Minzipped Size

React global variables (some call it state management though).

Usage

import { newRevar } from "revars";

const [
    /**
     * mutable object you can use anywhere,
     * think of it as of state
     */
    counter,
    /**
     * hook that makes component rerender
     * whenever according state object changes
     */
    useCounterRerender
] = newRevar(
    /**
     * initial state value
     */
    { counterValue: 0 }
);

Really, like this simple. It works with any nesting levels and array fields. And you also can have any number of revars in your React application.

Timer example (codesandbox link)

import React, { useEffect, useCallback } from "react";
import { newRevar } from "revars";

// creating revars
const [timer, useTimerRerender] = newRevar({ ticks: 0 });
const [stats, useStatsRerender] = newRevar({ resetCount: 0 });

// custom hooks
const useTimerIncrease = () => {
    useEffect(() => {
        setInterval(() => timer.ticks++, 1000);
    }, []);
};

const useTimerReset = () => {
    return useCallback(() => {
        timer.ticks = 0;
        stats.resetCount++;
    }, []);     
};

// components
const Timer: React.FC = () => {
    useTimerRerender();
    useTimerIncrease();
    const timerReset = useTimerReset();

    return <div>
        <span>{ timer.ticks } ticks</span>
        <button onClick={ timerReset }>
            Reset timer
        </button>
    </div>
};

const Stats: React.FC = () => {
    useStatsRerender();

    return <div>Reset happened { stats.resetCount } times</div>
};

const App: React.FC = () => {
    const timerReset = useTimerReset();

    return <>
        <Timer />
        <Stats />
        <button onClick={ timerReset }>Reset timer from App</button>
    </>
};

Package API

Takes initial Revar value as a parameter and returns array of Revar and a hook for using rerenders on this Revar changes.

function newRevar<T>(initialState: T): [T, () => void]
6.0.21

2 years ago

6.0.20

2 years ago

6.0.16

2 years ago

6.0.15

2 years ago

6.0.14

2 years ago

6.0.13

2 years ago

6.0.19

2 years ago

6.0.18

2 years ago

6.0.17

2 years ago

6.0.12

2 years ago

6.0.11

2 years ago

6.0.10

2 years ago

6.0.7

2 years ago

6.0.6

2 years ago

6.0.9

2 years ago

6.0.8

2 years ago

6.0.1

3 years ago

6.0.0

3 years ago

6.0.3

3 years ago

6.0.2

3 years ago

6.0.5

3 years ago

6.0.4

3 years ago

5.0.9

3 years ago

5.0.10

3 years ago

5.0.8

3 years ago

5.0.7

3 years ago

5.0.6

3 years ago

5.0.5

3 years ago

5.0.4

3 years ago

5.0.3

3 years ago

5.0.2

3 years ago

5.0.1

3 years ago

5.0.0

3 years ago

4.6.22

3 years ago

4.6.20

3 years ago

4.6.21

3 years ago

4.6.15

3 years ago

4.6.16

3 years ago

4.6.13

3 years ago

4.6.14

3 years ago

4.6.19

3 years ago

4.6.17

3 years ago

4.6.18

3 years ago

4.6.12

3 years ago

4.6.11

3 years ago

4.6.10

3 years ago

4.6.9

3 years ago

4.6.7

3 years ago

4.6.8

3 years ago

4.6.6

3 years ago

4.6.5

3 years ago

4.6.4

3 years ago

4.6.3

3 years ago

4.6.1

3 years ago

4.6.2

3 years ago

4.6.0

3 years ago

4.5.0

3 years ago

4.4.0

3 years ago

4.3.1

3 years ago

4.2.2

3 years ago

4.3.0

3 years ago

4.2.1

3 years ago

4.2.0

3 years ago

4.0.9

3 years ago

4.0.8

3 years ago

4.1.0

3 years ago

4.0.5

3 years ago

4.0.7

3 years ago

4.0.6

3 years ago

4.0.4

3 years ago

4.0.1

3 years ago

4.0.0

3 years ago

4.0.3

3 years ago

4.0.2

3 years ago

3.0.3

3 years ago

3.0.2

3 years ago

3.0.1

3 years ago

3.0.0

3 years ago

2.2.0

3 years ago

2.1.0

3 years ago

2.0.1

3 years ago

1.0.9

3 years ago

1.0.11

3 years ago

1.0.10

3 years ago

2.0.0

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago

0.0.8

3 years ago

0.0.5

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.3

3 years ago

0.0.4

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago