1.0.0 โ€ข Published 4 years ago

over-stateful v1.0.0

Weekly downloads
6
License
MIT
Repository
github
Last release
4 years ago

npm

NPM

See Demo On Codesandbox

โœจ Features

  • ๐Ÿ˜Ž Easy to learn
  • ๐Ÿ“ฆ ~590b (gzipped)
  • ๐Ÿ”ฅ Easy to scale
  • ๐Ÿ™…โ€โ™‚๏ธ Zero dependencies
  • โœ‚๏ธ Super-flexible API
  • โœ… Fully tested and reliable
  • โš’ CommonJS, ESM & browser standalone support

๐Ÿ”ง Installation

You can easily install this package with yarn or npm:

$ yarn add over-stateful

or

$ npm install --save over-stateful

๐Ÿ“– Usage

Some usage terms you need to be familar with โ€“ createStore, useOverProvider and useOverState, OverProvider, store :

  • createStore, takes in the central state and the central reducers,
  • useOverProvider, internal tool that handles the reducer and state.
  • useOverState, hooks that handle reading state and dispatching actions
  • OverProvider, React element that takes in the store, -store, Proxy object with your state.

Here is a simple example: store.js

export const addOne = () => ({ type: 'ADD_ONE_COUNT' });
export const minusOne = () => ({ type: 'MINUS_ONE_COUNT' });

export const countReducer = (state, action) => {
  switch (action.type) {
    case 'ADD_ONE_COUNT':
      return { count: state.count + 1 };
    case 'MINUS_ONE_COUNT':
      return { count: state.count - 1 };
}
import React from 'react';
import { OverProvider, createStore } from 'over-stateful';
import { countReducer } from './store';
import App from './App';

const store = createStore({ count: 0 }, [countReducer]);
export default function Root() {
  return (
    <OverProvider store={store}>
      <App />
    </OverProvider>
  );
}

Comparison with other state management (examples)

With other state mannagement, setup and learning curve is a lot harder and bent you'd have to call/read documentations over and over again ..... For example:

  • Redux state managment
  • Easy State
  • Mobx e.t.c

Meanwhile, with over-stateful, all you need is this, less documentation required to get you going...

import React from 'react';
import { OverProvider, createStore } from 'over-stateful';
import { countReducer } from './store';
import App from './App';

const store = createStore({ count: 0 }, [countReducer]);
export default function Root() {
  return (
    <OverProvider store={store}>
      <App />
    </OverProvider>
  );
}

App.js

import React from 'react';
import { useOverState } from 'over-stateful';

const App = () => {
  const [state, dispatch] = useOverState();
  return (
    <>
      Count: {state.count}
      <button onClick={() => dispatch(addOne())}> +1 </button>
      <button onClick={() => dispatch(minusOne())}> -1 </button>
    </>
  );
};

โœจ

๐Ÿค License

MIT ยฉ codewonders.dev ย ยทย  GitHub @adenekan41 / codewonders > ย ยทย 

1.0.0

4 years ago

0.0.9-beta.3

4 years ago

0.0.9-beta.2

4 years ago

0.0.9-beta.1

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.7-beta-4

4 years ago

0.0.7-beta-3

4 years ago

0.0.7-beta-2

4 years ago

0.0.7-beta-1

4 years ago

0.0.7

4 years ago

0.0.6-beta-2

4 years ago

0.0.5-beta-2

4 years ago

0.0.5-beta-1

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.2

4 years ago