The text below is the result of a recent period of immersion in this world of Angular for Learning. I ask the community to help me improve my understanding if something is wrong or absent.
AngularJS is a framework for Single Page Applications (SPA) development.
A Single Page Application is simply a web application made up of a single page. All required assets (HTML, CSS, and JS) are loaded into a single load (the initial) and page components dynamically built using JS according to the user's actions.
The biggest advantage of a SPA is that the page becomes much more responsive and agile, making the experience closer to a desktop application. In the need of creating a page that requires extreme responsiveness, this may be the case for a SPA.
The applications of a SPA are the most varied and, mainly, with the great amount of frameworks that use this concept (AngularJS, React, EmberJS, Meteor ...) the tendency is that more and more pages in this model will emerge.
Certainly you have already visited some page that works in this format like the Angular2 page, the Protractor or Gmail itself. By clicking the links available on the page, there is no other load: the components are updated on the same page. Any additional data needed is obtained using AJAX.
Unlike PHP where your logic is running on the server side, a SPA uses JS heavily, that is, it demands more processing from the user's station (to process the JS) and communicates with a conforming Back End necessary.
A good 'side effect' of a SPA, in my opinion, is decoupling Front-End and Back-End logic. Analyze some Angular code and you'll see that page rendering tasks will be in the Front End.
The remaining persistence tasks (as you mentioned), heavy data computations and others will be in a second application which will be the Back End, usually offering an API Rest for data consumption.
Other commonly cited advantages are:
- The Back-End does not need to save the user's browsing status, this being done by the Front End, where the task is usually done using local resources of the user's station (using Web Storage, for example)
- Possibility of an application running Offline, since after downloading the assets to the user's station the application will need a Back-End just to synchronize data and other operations (Note: this has some implications that are out of scope of this response)
Note that this is not a universal solution but a 'case'. Many are building websites on this template by, like you said, fashion.