DEV Community

Cover image for Create redux in 28 lines of code
Shanoy Sinclair
Shanoy Sinclair

Posted on Edited on

Create redux in 28 lines of code

Its such an eye opener when you learn to create the tools you are using and get a glimpse of how some of its functionality works under the hood.

function createStore(reducer, initialState) {
    let state = initialState;

    function getState() {
        return state;
    }

    function dispatch(action) {
        state = reducer(state, action);
    }

    return { dispatch, getState };
}

function reducer(state = [], action) {
    switch (action.type) {
        case "add":
            return [...state, action.payload];
        default:
            return state;
    }
}

const store = createStore(reducer);
store.dispatch({ type: "add", payload: "learn to code" });
store.dispatch({ type: "add", payload: "react" });
store.getState();
//[ 'learn to code', 'react' ]
Enter fullscreen mode Exit fullscreen mode

inspired by: typeofnandev

Top comments (2)

Collapse
 
bias profile image
Tobias Nickel

actually, your implementation only 10 lines. I think there is enough space left for .subscribe().

Collapse
 
shanoysinc profile image
Shanoy Sinclair

Yes your right lol I will be added subscribe next and possible try create the wrappers for react