const { createStore } = require('redux'); const INCREMENT_COUNTER = 'INCREMENT_COUNTER'; const DECREMENT_COUNTER = 'DECREMENT_COUNTER'; const initialState = { value: 0 }; const store = createStore( (state, action) => { switch (action.type) { case INCREMENT_COUNTER: return { value: state.value + 1 }; case DECREMENT_COUNTER: return { value: state.value - 1 }; default: return state; } }, initialState, window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__() : (noop) => noop ); const el = document.getElementById('counter'); store.subscribe(() => { el.innerHTML = store.getState().value; }); const increment = document.getElementById('increment'); const decrement = document.getElementById('decrement'); increment.onclick = () => store.dispatch({ type: INCREMENT_COUNTER }); decrement.onclick = () => store.dispatch({ type: DECREMENT_COUNTER });