"ASP.NET Core 2 and Angular 5" by Valerio De Sanctis suggests on page 13 that staples include:
- HTML5 pushState API - set the history in window.history.back(); with tricks like this: history.pushState(stateObj, "page 2", "bar.html");
- webhooks - HTTP callbacks such as getting something back from a POST
- data transport-based requests - (talking to a REST API from the head of a headless app)
- dynamic web components - more...
- UI data bindings - *ngFor for example
- stateless, AJAX-driven architecture - speaks for itself