1.1.13 • Published 8 months ago

reshow-flux-base v1.1.13

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

8 months ago

1.1.12

8 months ago

1.1.11

8 months ago

1.1.10

8 months ago

1.1.13

8 months ago

1.1.8

11 months ago

1.1.7

11 months ago

1.1.1

1 year ago

1.1.0

1 year ago

1.1.6

1 year ago

1.1.5

1 year ago

1.1.4

1 year ago

1.1.3

1 year ago

1.1.2

1 year 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

4 years ago

0.15.5

4 years ago

0.15.6

4 years ago

0.15.7

4 years ago

0.15.8

4 years ago

0.15.9

4 years ago

0.15.0

4 years ago

0.15.1

4 years ago

0.15.2

4 years ago

0.15.3

4 years ago

0.16.10

4 years ago

0.16.11

3 years ago

0.16.3

4 years ago

0.16.4

4 years ago

0.16.5

4 years ago

0.16.6

4 years ago

0.16.7

4 years ago

0.16.8

4 years ago

0.16.9

4 years ago

0.16.0

4 years ago

0.16.1

4 years ago

0.16.2

4 years ago

0.15.10

4 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