Independent Redux const redux = require ('redux'); // using node
const createStore = redux.createStore;
// initialize the state
const initialState = { counter: 0 }
// REDUCER
const rootReducer = (state= initialState, action) => { // set the initial
state
if (action.type === 'INC_COUNTER')
return {
...state, // copy the old state
- prevent changing the original state
counter: state.counter + 1 // read the old state and update it to a new object
};
if (action.type === 'ADD_COUNTER')
return {
...state, // copy the old state
- prevent changing the original state
counter: state.counter + action.value // read the old state
and update it to a new object
};
return state; // finally return the
state
}
// STORE
const store = createStore(rootReducer);
console.log(store.getState());
// SUBSCRIPTION - execute when state is updated - when
action reach to reducer
store.subscribe (() => { console.log('[Subscription]', store.getState()); });
// DISPATCHER - Action
store.dispatch({type: 'INC_COUNTER'}); // for convention, use uupercase type
store.dispatch({type: 'ADD_COUNTER', value: 10}); // property name (value) is up to us
console.log(store.getState());
No comments:
Post a Comment