App component
For our router to work, we need to declare a RouterView component somewhere in our page template. Otherwise, there's nowhere for the page components to render.
We'll slightly restructure our app to do this. As it is, the ListingPage component is the root component of the app, as it is at the top of the component hierarchy and loads all other components that we use.
Since we want the router to switch between ListingPage and HomePage based on the URL, we need another component to be above ListingPage in the hierarchy and handle this work. We'll call this new root component App:

Figure 7.2. The relationship between App, ListingPage, and HomePage
Let's create the App component file:
$ touch resources/assets/components/App.vueThe root instance of Vue should render this to the page when it loads, instead of ListingPage.
resources/assets/js/app.js:
import App from '../components/App.vue';
...
var app = new Vue({
el: '#app',
render: h => h(App),
router
});The following is the content...