blob: aad05b2f63b574769050652262247e870537b0b0 [file] [log] [blame] [view] [edit]
# Speedometer 3.0: TodoMVC: React
## Description
This application uses React 17.0.2 to implement a todo application.
- [React](https://reactjs.org/) is a JavaScript library for creating user interfaces.
The downstream version also generates the TodoMVC-React-Window workload. A variation of TodoMVC-React that renders and controls the app in a new window using the scripts loaded in the parent window.
## Implementation details
React:\
Model: todoReducer (reducer.js)\
View: React ui components\
controller: App component + useReducer hook
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
## 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.
For TodoMVC-React-Window, the webpack scripts separate the JavaScript from the CSS. The JavaScript is loaded by index.html in the main window, while the css is loaded by todo.html in the child window.
## 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 start
```