| # Speedometer 3.0: TodoMVC: React-Redux |
| |
| ## Description |
| |
| This application uses React in combination with Redux to implement a todo application. |
| |
| - [React](https://reactjs.org/) is a JavaScript library for creating user interfaces. |
| - [Redux](https://redux.js.org/) centralizes your application's state. |
| - [React-Redux](https://react-redux.js.org/) is designed to work with React's component model. |
| |
| ## Implementation details |
| |
| This implementation uses Redux to manage state and data flow of the application. |
| The Redux pattern is similar to a mvc patter, with the main difference that Redux is unidirectional. |
| Redux uses actions to dispatch a change, which is captured by reducers that update a central store. |
| Once the state in the store updates, the view receives the new state and can reflect those changes to the user. |
| |
| Redux:\ |
| Model: Redux store\ |
| View: React ui components\ |
| controller: React connected components + Redux reducers |
| |
| MVC:\ |
| Model: maintains the data and behavior of an application\ |
| View: displays the model in the ui\ |
| Controller: serves as an interface between view & model components |
| |
| The storage solution uses an in-memory data object that implements a simple array to hold the todos. |
| |
| ## Built steps |
| |
| To build the static files, this application utilizes webpack. It minifies and optimizes output files and copies all necessary files to a `dist` folder. |
| |
| ## Requirements |
| |
| The only requirement is an installation of Node, to be able to install dependencies and run scripts to serve a local server. |
| |
| ``` |
| * Node (min version: 18.13.0) |
| * NPM (min version: 8.19.3) |
| ``` |
| |
| ## Local preview |
| |
| ``` |
| terminal: |
| 1. npm install |
| 2. npm run dev |
| browser: |
| 1. http://localhost:7001/ |
| ``` |