A single page application provides complete separation of concerns where the server side will communicate to the front end only through rest APIs that makes it easy for parallel development of both the components with little to no dependency on each other.
The front end code becomes extremely easy to test since there is no dependency on the server side. The data requirements can be easily mocked on the front end using several test libraries that are available and both unit and integration testing can be done efficiently.
This approach is particularly helpful when it comes to scaling the application. Having separated most of the view logic, the server side application can be constantly tune and optimized without the need to deploy the whole application every time. In addition to that the whole server.
With a rapidly expanding array of tools and frameworks specifically designed to aid in developing single page applications, the time has never been more right to adopt this approach for any web applications.
SPAs are implemented for several use cases these days as they help in all aspects of the development cycle.
Single page application frameworks such as AngularJS and reactJS comes with a variety of native and third party libraries that have made common tasks such as form handling, validation, presentation as simple as it can get. By leveraging these libraries and frameworks, huge applications that heavily depend on several.
Almost all web applications requires some sort of a maintenance backend or an admin interface which usually consists of forms and data tables and occasionally some visualization usually in the form of a dashboard to give the administrators a quick report of the important aspects of the system like number of user accounts per day and new signups per day etc. A SPA would be a perfect fit for such an application because these admin interfaces are mostly stand alone and they usually have no relationship with the frontend and they can be maintained and deployed separately.