Routing on the browser
Backend developers are very familiar with the concept of routing in server-side applications: it allows the application (running on a web server) to render pages and content based on the URL the users requested.
For example, if our proof-of-concept application were a more traditional server-side one, we'd have to define at least the following routes:
GET /
would return the list of all posts for a given day (with a date picker).GET /add
would render the form to add a new post.POST /add
would receive the data for the new post and store it in the database, then redirect the user to read the post.GET /view/{id}
would render the post with the given ID.
Because our app is a SPA, however, we are only shipping a single index.html
file that contains all the different views. The state of the application controls what view is currently rendered.
Client-side routers are precisely the components that allow our SPA to render the correct...