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

1.0.12 • Public • Published

init-store

use context with easy library in React function component

usage

  1. initialize store in base
import initStore from "init-store";

export const { Context, Provider } = initStore();
  1. use in function component
export default function App() {
  // store controller with store & setStore
  const [store, setStore] = React.useState({ count: 1 });

  return (
    // provider
    <Provider value={{ store, setStore }}>
      <div className="App">
        Title
        <LayerAlpha />
        <LayerBeta />
      </div>
    </Provider>
  );
}
  1. use in son component
export function LayerAlpha() {
  const { store, setStore } = React.useContext(Context);

  return <div>LayerAlpha {store.count}</div>;
}

export function LayerBeta() {
  const { store, setStore } = React.useContext(Context);

  return (
    <div>
      <button onClick={() => setStore({ count: ++store.count })}>
        LayerBeta
      </button>
    </div>
  );
}
  • overview
import React from "react";

export type StoreType = {
  count: number;
};

export const { Context, Provider } = initStore<StoreType>();

export function LayerAlpha() {
  const { store, setStore } = React.useContext(Context);

  return <div>LayerAlpha {store.count}</div>;
}

export function LayerBeta() {
  const { store, setStore } = React.useContext(Context);

  return (
    <div>
      <button onClick={() => setStore({ count: ++store.count })}>
        LayerBeta
      </button>
    </div>
  );
}

export default function App() {
  const [store, setStore] = React.useState<StoreType>({
    count: 1,
  });

  return (
    <Provider value={{ store, setStore }}>
      <div className="App">
        Title
        <LayerAlpha />
        <LayerBeta />
      </div>
    </Provider>
  );
}

Package Sidebar

Install

npm i init-store

Weekly Downloads

1

Version

1.0.12

License

MIT

Unpacked Size

7.19 kB

Total Files

7

Last publish

Collaborators

  • mm996