Pure client-side routing came into picture when people started using the JavaScript functionality and state they had in the client to manage not only the state of the current view but also the navigation to other views.
The good part of client-side routing is that it's fast, the code to render the view is there, and if the data is there too, then it's instantaneous. The bad part is that the initial load of the code is slower, as you need to load the current view and the code to navigate to the next ones. As always, it's a matter of choosing where each practice fits the best, and mix it if necessary, to get the best possible user experience.
The hash history works on older browsers (such as Internet Explorer 8 and 9) and doesn’t require any server configuration. It uses hashes in the URL to define the routes, such as example.com/#/home
and example.com/#/about
.
If your application doesn’t need to run on legacy browsers, where the browser's History API...