Skip to content

Instantly share code, notes, and snippets.

@PradalCyril
Created December 17, 2018 14:15
Show Gist options
  • Save PradalCyril/567d4fd875515af1c20677a2f42ade31 to your computer and use it in GitHub Desktop.
Save PradalCyril/567d4fd875515af1c20677a2f42ade31 to your computer and use it in GitHub Desktop.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Counter Redux</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Redux CDN -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/redux/4.0.1/redux.min.js"></script>
</head>
<body>
<!-- Render the store -->
<p id="render-store"></p>
<button id="add">+1</button>
<button id="remove">-1</button>
<button id="addten">+10</button>
<button id="removeten">-10</button>
<button id="reset">reset</button>
<script src="main.js"></script>
</body>
</html>
// ACTIONS
const addAction = {
type: 'ADD',
};
const addAction10 = {
type: 'ADDa',
};
const removeAction = {
type: 'REMOVE',
};
const removeAction10 = {
type: 'REMOVEa',
};
const reseta = {
type: 'RESET',
}
// REDUCER
const counterReducer = (state = 0, action) => {
switch (action.type) {
case 'ADD':
return state + 1;
case 'REMOVE':
return state - 1;
case 'REMOVEa':
return state - 10;
case 'ADDa':
return state + 10;
case 'RESET':
return state = 0;
default:
return state;
}
}
// STORE
const { createStore } = Redux;
const store = createStore(counterReducer);
// MAIN
const renderStore = document.getElementById('render-store');
const render = () => {
renderStore.innerHTML = store.getState();
}
store.subscribe(render);
render();
const add = document.getElementById('add');
add.addEventListener('click', () => {
store.dispatch(addAction)
});
const remove = document.getElementById('remove');
remove.addEventListener('click', () => {
store.dispatch(removeAction)
});
const add10 = document.getElementById('addten');
addten.addEventListener('click', () => {
store.dispatch(addAction10)
});
const removeten = document.getElementById('removeten');
removeten.addEventListener('click', () => {
store.dispatch(removeAction10)
});
const reset = document.getElementById('reset');
reset.addEventListener('click', () => {
store.dispatch(reseta)
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment