What is Angular Stuff and What is Just SPA Stuff?
- Routing - We are making "Single Pages Applications", yes, but we are still going to want to wipe the whole view and put up a new "page". We're still going to want to create new links in the address bar and take advantage of the back and forward buttons, SEO blah blah blah...
A great router is the Angular 1 UI-Router. Angular 2 is meant to have the capabilities (and possibly more?) of UI-Router thus making it a lot simpler with just one, standard router that works. Some features of good routing systems are that you can do nested routes and pass parameters with your routes. In angular you can use the service to hook into different methods and events on the router.
- Command Line Workflow - Grunt, gulp, browserify, webpack, angular cli... There are almost too many task runners and applications bundlers to keep track of. Almost. :) However, once you are comfortable with one it's a pretty short ramp-up time to move to a new project as long as they have the same or similar functioning commands. A good workflow should have at least these commands:
- Runs your project in a browser with hot reload (ie updates browser on file changes).
- Runs your unit tests with hot reload,
- Runs your e2e tests.
- Build a production version of your application.
- Runs the production version in a browser so you can see and manually test it.
- Testing - Ok, some people are rolling their eyes at me here. People know that I'm a huge fan of unit and protractor testing. Although there are some differences in how you "bring in" your components to be tested, unit testing applies to any application regardless of the framework you use. I'm pretty sure you can even use protractor to test React applications. And contrary to what the Angular team tells you, it's not that difficult to test applications without DI.