1.0.0 • Published 2 months ago

reshow-flux-base v1.0.0

Weekly downloads
158
License
ISC
Repository
github
Last release
2 months ago

createReducer

Similar with react useReducer, but let you use anywhere.

Usage

Accepts a reducer function of type (state, action) => newState. Returns a new store with a dispatch method.

import { createReducer } from "reshow-flux-base";

/**
 * reducer -> (state, action) => newState
 */
const [store, dispatch] = createReducer(reducer, initial[Arg | Function]);

Store methods.

MethodsExplain
getStateReturn current state.
addListenerYou could register any callback function such as react useState.
removeListenerRemove register callback, such as unmount a component.

Full App Example

const initialState = { count: 0 };

function reducer(state, action) {
    switch (action.type) {
        case "increment":
            return { count: state.count + 1 };
        case "decrement":
            return { count: state.count - 1 };
        default:
            throw new Error();
    }
}

const [store, dispatch] = createReducer(reducer, initialState);

function Counter() {
    const [state, setState] = useState(() => store.getState());
    useEffect(() => {
        store.addListener(setState);
        return () => {
            store.removeListener(setState);
        };
    }, []);

    return (
        <>
            Count: {state.count}
            <button onClick={() => dispatch({ type: "decrement" })}>-</button>
            <button onClick={() => dispatch({ type: "increment" })}>+</button>
        </>
    );
}

Codesandbox

https://codesandbox.io/s/reshow-flux-base-34umk

1.0.0

2 months ago

0.18.1

2 months ago

0.18.2

2 months ago

0.18.0

2 months ago

0.17.48

6 months ago

0.17.38

10 months ago

0.17.37

10 months ago

0.17.39

10 months ago

0.17.43

9 months ago

0.17.42

9 months ago

0.17.45

9 months ago

0.17.44

9 months ago

0.17.47

8 months ago

0.17.46

9 months ago

0.17.41

9 months ago

0.17.40

9 months ago

0.17.16

1 year ago

0.17.18

1 year ago

0.17.17

1 year ago

0.17.19

1 year ago

0.17.21

1 year ago

0.17.20

1 year ago

0.17.23

1 year ago

0.17.22

1 year ago

0.17.25

1 year ago

0.17.24

1 year ago

0.17.27

1 year ago

0.17.26

1 year ago

0.17.29

1 year ago

0.17.28

1 year ago

0.17.32

1 year ago

0.17.31

1 year ago

0.17.34

1 year ago

0.17.36

1 year ago

0.17.35

1 year ago

0.17.30

1 year ago

0.17.15

2 years ago

0.17.8

2 years ago

0.17.9

2 years ago

0.17.10

2 years ago

0.17.12

2 years ago

0.17.11

2 years ago

0.17.14

2 years ago

0.17.13

2 years ago

0.17.5

2 years ago

0.17.6

2 years ago

0.17.7

2 years ago

0.17.4

2 years ago

0.17.2

2 years ago

0.17.3

2 years ago

0.17.0

2 years ago

0.17.1

2 years ago

0.16.15

2 years ago

0.16.16

2 years ago

0.16.14

2 years ago

0.16.12

2 years ago

0.16.13

2 years ago

0.15.4

2 years ago

0.15.5

2 years ago

0.15.6

2 years ago

0.15.7

2 years ago

0.15.8

2 years ago

0.15.9

2 years ago

0.15.0

2 years ago

0.15.1

2 years ago

0.15.2

2 years ago

0.15.3

2 years ago

0.16.10

2 years ago

0.16.11

2 years ago

0.16.3

2 years ago

0.16.4

2 years ago

0.16.5

2 years ago

0.16.6

2 years ago

0.16.7

2 years ago

0.16.8

2 years ago

0.16.9

2 years ago

0.16.0

2 years ago

0.16.1

2 years ago

0.16.2

2 years ago

0.15.10

2 years ago

0.3.7

4 years ago

0.3.6

4 years ago

0.3.5

4 years ago

0.3.4

4 years ago

0.3.3

4 years ago

0.3.2

4 years ago

0.3.1

4 years ago

0.3.0

4 years ago

0.2.9

4 years ago

0.2.8

4 years ago

0.2.7

4 years ago

0.2.6

4 years ago

0.2.5

4 years ago

0.2.3

4 years ago

0.2.4

4 years ago

0.2.1

4 years ago

0.2.0

4 years ago

0.2.2

4 years ago

0.1.6

5 years ago

0.1.5

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

6 years ago

0.1.0

6 years ago

0.0.17

6 years ago

0.0.16

6 years ago

0.0.15

6 years ago

0.0.14

6 years ago

0.0.13

6 years ago

0.0.12

6 years ago

0.0.11

6 years ago

0.0.10

6 years ago

0.0.9

6 years ago

0.0.8

6 years ago

0.0.7

6 years ago

0.0.6

6 years ago

0.0.5

6 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago

0.0.0

6 years ago