sdorex
TypeScript icon, indicating that this package has built-in type declarations

1.0.9 • Public • Published

sdorex

npm npm bundle size

probably the most minimalist state management in react

  • only 1 API
  • reactive, no unnecessary re-render
  • easy, intuit GET and SET state

Install

npm i sdorex
# OR
yarn add sdorex

Usage

basic usage

import sdorex from "sdorex";

// init store
const store = sdorex({ count: 0 });

export default function App() {
  return (
    <>
      <p>{store.count}</p>
      <button onClick={() => store.count++}>ADD</button>
    </>
  );
}

DEMO

define function

const store = sdorex({
  count: 0,
  inc: () => store.count++,
});

export default function App() {
  return (
    <>
      <p>{store.count}</p>
      <button onClick={() => store.inc()}>ADD</button>
    </>
  );
}

reactive

count change but User will not re-render

const store = sdorex({
  count: 0,
  user: "Tom",
});

function Count() {
  console.log("Count render.");
  return <p>{store.count}</p>;
}

function User() {
  console.log("User render.");
  return <p>{store.user}</p>;
}

export default function App() {
  return (
    <>
      <Count />
      <User />
      <button onClick={() => store.count++}>ADD</button>
    </>
  );
}

define object

const store = sdorex({
  user: {
    name: "Tom",
  },
});

function User() {
  return (
    <>
      <p>{store.user.name}</p>
      <p>{store.user.gender}</p>
    </>
  );
}

export default function App() {
  return (
    <>
      <User />
      <button
        onClick={() => {
          store.user.name = "Jerry";
          store.user.gender = "girl";
        }}
      >
        GO
      </button>
    </>
  );
}

very simple, try it!

Package Sidebar

Install

npm i sdorex

Weekly Downloads

0

Version

1.0.9

License

MIT

Unpacked Size

5.88 kB

Total Files

5

Last publish

Collaborators

  • mm996