GianGonzaga29
12/4/2018 - 2:21 AM

Vue Router Setup

Vue files will be on HTML syntax because cacher doesn't support vue

// import components

import Vue from 'vue'
import App from './App.vue'
import VueRouter from 'vue-router'
import {routes} from './routes.js'

// Important: Setup vue-router
Vue.use(VueRouter);

const router = new VueRouter({
  routes,
  mode: 'history'
})

new Vue({
  el: '#app',
  router, // Register router in the vue object 
  render: h => h(App)
})
// import components

import User from './components/user/User.vue'
import Home from './components/Home.vue'

export const routes = [
    { path: '', component: Home },
    { path: '/user/:id', component: User}
];
<template>
    <div class="container">
        <div class="row">
            <div class="col-xs-12 col-sm-8 col-sm-offset-2 col-md-6 col-md-offset-3">
                <h1>Routing</h1>
                <app-header></app-header>
                <hr>
                <!-- This is where the component will be rendered depending on the route -->
                <router-view></router-view>
            </div>
        </div>
    </div>
</template>

<script>
    import Header from './components/Header.vue'

    export default {
        components: {
            'app-header': Header
        }
    }
</script>

<style>
</style>
<template>
    <div>
        <h1>The Home Page</h1>
        <hr>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab asperiores, aut autem, blanditiis consequuntur
            dolore excepturi laborum maiores minima nihil non nulla obcaecati quas quibusdam quod sed suscipit vero
            voluptatem.</p>

    </div>
</template>
<template>
	<div>
		<h1>The User Page</h1>
        <button @click="navigateToHome" class="btn btn-primary">Go to Home</button>
	</div>
</template>

<script>
    export default {
        methods: {
            navigateToHome() {
                // Navigate back to home route
                this.$router.push('/') // This pushes '/' on top of the stack of routes
                // This is also a way to navigate routes dynamically
            }
        }
    }
</script>
<template>
	<div>
		<ul class="nav nav-pills">
            <!-- This is how to navigate routes -->
            <li role="presentation"><router-link to="/">Home</router-link></li>
            <li role="presentation"><router-link to="/user/10">User</router-link></li>
        </ul>
	</div>
</template>