1.1.13 • Published 6 months ago

reshow-flux-base v1.1.13

Weekly downloads
158
License
ISC
Repository
github
Last release
6 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.1.9

6 months ago

1.1.12

6 months ago

1.1.11

6 months ago

1.1.10

6 months ago

1.1.13

6 months ago

1.1.8

10 months ago

1.1.7

10 months ago

1.1.1

11 months ago

1.1.0

11 months ago

1.1.6

11 months ago

1.1.5

11 months ago

1.1.4

11 months ago

1.1.3

11 months ago

1.1.2

11 months ago

1.0.0

1 year ago

0.18.1

1 year ago

0.18.2

1 year ago

0.18.0

1 year ago

0.17.48

2 years ago

0.17.38

2 years ago

0.17.37

2 years ago

0.17.39

2 years ago

0.17.43

2 years ago

0.17.42

2 years ago

0.17.45

2 years ago

0.17.44

2 years ago

0.17.47

2 years ago

0.17.46

2 years ago

0.17.41

2 years ago

0.17.40

2 years ago

0.17.16

2 years ago

0.17.18

2 years ago

0.17.17

2 years ago

0.17.19

2 years ago

0.17.21

2 years ago

0.17.20

2 years ago

0.17.23

2 years ago

0.17.22

2 years ago

0.17.25

2 years ago

0.17.24

2 years ago

0.17.27

2 years ago

0.17.26

2 years ago

0.17.29

2 years ago

0.17.28

2 years ago

0.17.32

2 years ago

0.17.31

2 years ago

0.17.34

2 years ago

0.17.36

2 years ago

0.17.35

2 years ago

0.17.30

2 years ago

0.17.15

3 years ago

0.17.8

3 years ago

0.17.9

3 years ago

0.17.10

3 years ago

0.17.12

3 years ago

0.17.11

3 years ago

0.17.14

3 years ago

0.17.13

3 years ago

0.17.5

3 years ago

0.17.6

3 years ago

0.17.7

3 years ago

0.17.4

3 years ago

0.17.2

3 years ago

0.17.3

3 years ago

0.17.0

3 years ago

0.17.1

3 years ago

0.16.15

3 years ago

0.16.16

3 years ago

0.16.14

3 years ago

0.16.12

3 years ago

0.16.13

3 years ago

0.15.4

3 years ago

0.15.5

3 years ago

0.15.6

3 years ago

0.15.7

3 years ago

0.15.8

3 years ago

0.15.9

3 years ago

0.15.0

3 years ago

0.15.1

3 years ago

0.15.2

3 years ago

0.15.3

3 years ago

0.16.10

3 years ago

0.16.11

3 years ago

0.16.3

3 years ago

0.16.4

3 years ago

0.16.5

3 years ago

0.16.6

3 years ago

0.16.7

3 years ago

0.16.8

3 years ago

0.16.9

3 years ago

0.16.0

3 years ago

0.16.1

3 years ago

0.16.2

3 years ago

0.15.10

3 years ago

0.3.7

5 years ago

0.3.6

5 years ago

0.3.5

5 years ago

0.3.4

5 years ago

0.3.3

5 years ago

0.3.2

5 years ago

0.3.1

5 years ago

0.3.0

5 years ago

0.2.9

5 years ago

0.2.8

5 years ago

0.2.7

5 years ago

0.2.6

5 years ago

0.2.5

5 years ago

0.2.3

5 years ago

0.2.4

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.2.2

5 years ago

0.1.6

6 years ago

0.1.5

7 years ago

0.1.4

7 years ago

0.1.3

7 years ago

0.1.2

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago

0.0.17

7 years ago

0.0.16

7 years ago

0.0.15

7 years ago

0.0.14

7 years ago

0.0.13

7 years ago

0.0.12

7 years ago

0.0.11

7 years ago

0.0.10

7 years ago

0.0.9

7 years ago

0.0.8

7 years ago

0.0.7

7 years ago

0.0.6

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago

0.0.0

7 years ago