This project was created to help represent a fundamental app written with Angular. The heroes and villains theme is used throughout the app.
by John Papa
Comparative apps written with Vue and React can be found at at github.com/johnpapa/heroes-vue and github.com/johnpapa/heroes-react
I love JavaScript and the Web! One of the most common questions I hear is "which framework is best?". I like to flip this around and ask you "which is best for you?". The best way to know this is to try it for yourself. I'll follow up with some articles on my experiences with these frameworks but in the meantime, please try it for yourself to gain your own experience with each.
Hosted in Azure
-
Clone this repository
git clone https://github.com/johnpapa/heroes-angular.git cd heroes-angular
-
Install the npm packages
npm install
-
Run the app!
npm run quick
-
You can execute all of the UI tests by running the following steps
npm run cypress
Each of these apps contain:
- routing
- lazy loading
- container/presenter components
- redux state management pattern
- The same CSS
Cypress.io makes it easy to run all three apps simultaneously in end to end tests, so you can watch the results while developing.
The goal of the project was to show how each framework can be designed to create the same app. Each uses their own specific techniques in a way that is tuned to each framework. However the one caveat I wanted to achieve was to make sure all of them look the same. While I could have used specific styling for each with scoped and styled components, I chose to create a single global styles file that they all share. This allowed me to provide the same look and feel, run the same cypress tests, and focus more on the HTML and JavaScript/TypeScript.
The app uses a JSON server for a backend by default. This allows you to run the code without needing any database engines or cloud accounts. Enjoy!
You can host the app any way you prefer. I chose Docker because it is familiar to me and makes it easy to run anywhere (local or cloud). You do you though and feel free to run this in yur own way.
Thank you to Sarah Drasner, Brian Holt, Chris Noring, Craig Shoemaker, and Ward Bell for providing input and reviewing the code in the three repos for the Angular, React, and Vue apps: