We are going to cover routing and navigation in one of the later chapters in this book; but for now, let's see how a basic isomorphic router may look like.
Router is the core component in any web application, the main function of which is being able to match any specific URL string (for example /search?q=canon
) to a corresponding action method, which is responsible for rendering a web page or screen. In its simplest form, a router is just a collection of routes plus a matching method. Each route is just a combination of a URL path string (or, regular expression pattern) and one or more action methods (actions). On the client side, it is used in a combination with a navigation component (for example, the one powered by HTML5 History API).
Let's add the core/Router.js
file with the following contents:
// TODO: Register more routes here const routes = [ require('../routes/Home') ]; const router = { match(location) { const route = routes.find...