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' ]
inspired by: typeofnandev
Top comments (2)
actually, your implementation only 10 lines. I think there is enough space left for
.subscribe()
.Yes your right lol I will be added subscribe next and possible try create the wrappers for react