Skip to content

Instantly share code, notes, and snippets.

@BastienSaulnier
Created December 2, 2019 14:44
Show Gist options
  • Save BastienSaulnier/92e3cbd06b7af5dc8065991207174825 to your computer and use it in GitHub Desktop.
Save BastienSaulnier/92e3cbd06b7af5dc8065991207174825 to your computer and use it in GitHub Desktop.
Redux - Un compteur avec Redux et JavaScript - Wild Code School
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Redux Counter</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/redux/4.0.1/redux.min.js"></script>
</head>
</head>
<body>
<main>
<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>
</main>
</body>
</html>
/*actions*/
const addAction = {
type: "ADD"
};
const removeAction = {
type: "REMOVE"
};
const addTenAction = {
type: "ADDTEN"
};
const removeTenAction = {
type: "REMOVETEN"
};
const addResetAction = {
type: "RESET"
};
/*reducers*/
const counterReducer = (state = 0, action) => {
switch (action.type) {
case "ADD":
return state + 1;
case "REMOVE":
return state - 1;
case "ADDTEN":
return state + 10;
case "REMOVETEN":
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 addTen = document.getElementById("addTen");
addTen.addEventListener("click", () => {
store.dispatch(addTenAction);
});
const removeTen = document.getElementById("removeTen");
removeTen.addEventListener("click", () => {
store.dispatch(removeTenAction);
});
const reset = document.getElementById("reset");
reset.addEventListener("click", () => {
store.dispatch(addResetAction);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment