JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>

<div id="app">
  <router-link to="/">Home</router-link> |
  <router-link to="/usa-host" >loc1</router-link> |
  <router-link to="/usa/washington-host"  >loc2</router-link>
  <router-view :key="$route.fullPath"></router-view>
</div>

JavaScript

const Home = { template: '<div>Home</div>' }

const Location = { 
	template: '<div>Location {{loc}} - {{ subloc }}</div>',
  data: function () {
    return {
    	loc: this.$route.params.loc,
    	subloc: this.$route.params.subloc,
    }
  },
}

const router = new VueRouter({
  routes: [
    { path: '/', component: Home },
    { path: '/:loc/:subloc?-host', component: Location },
    { path: '/:loc?-host', component: Location },
  ]
})

new Vue({
	router,
  el: '#app',
})