2.0.1 • Published 3 years ago

@deevoid/reactive-var v2.0.1

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

@deevoid/reactive-var

A dead simple global state management library for react.

Features

  • React 18 compatible
  • 687 bytes (Minified + Gzipped)
  • Reactive to the core
  • Can be used inside React components(Hooks API) as well as util functions directly

Installation

 For npm:   npm install @deevoid/reactive-var
 For yarn:  yarn add @deevoid/reactive-var

Usage/Examples

// reactiveVars.ts

import { makeVar } from '@deevoid/reactive-var'

export const countMakeVar = makeVar(0)
// React Component

 import React from "react";
 import { useReactiveVar } from "@deevoid/reactive-var";
 import { countMakeVar } from "./reactiveVars.ts";

 export default () => {
    const count = useReactiveVar(countMakeVar);
    return (
      <div>
        <div>{count}</div>
        <button
          onClick={() => {
            countMakeVar(countMakeVar() + 1);
          }}
        >
          Increment
        </button>
      </div>
    );
  };

API Reference

makeVar

  const countMakeVar = makeVar(0)
ParameterTypeDescription
initialValueanyRequired
customizer(prevState, newState) => booleanOptional. A function to manually compare the equality of state

Returns a reactiveVar

  • ReactiveVar returned from the makeVar function returns a function
  • Call it without parameters to get the latest value
  • Call it with a value to update/set the value of reactiveVar. Example: countMakeVar(5);

useReactiveVar

  const count = useReactiveVar(countMakeVar);
  • A react hook that listens to changes in a ReactiveVar and rerender the component when the variable changes(After evaluating the customizer function).
  • useReactiveVar must follow the rules of hook in react.
ParameterTypeDescription
reactiveVartypeof returnof makeVarRequired. The reactiveVar returned from the makeVar function

License

MIT ©️ Deevoid