1.0.12 • Published 2 years ago

init-store v1.0.12

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

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>
  );
}
1.0.12

2 years ago

1.0.11

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.2

2 years ago

1.0.0

2 years ago