Props with Vue Router
    Sep 23, 2022
  
  
  To pass route parameters as props, you should set the props option on your route to true.
This will set route.params as the component's props.
const User = {
  props: ['id'],
  template: '<h1>Your Id is {{id}} </h1>' 
}
const router = VueRouter.createRouter({
  history: VueRouter.createWebHashHistory(),
  routes: [
    {
      path: '/home',
      component: { template: '<h1>Home</h1>' }
    },
    {
      path: '/about',
      component: { template: '<h1>About Us</h1>' }
    },
    {
      path: '/user/:id',
      name: 'user',
      component: User,
      props: true
    }
  ]
});
const app = Vue.createApp({
  methods: {
    changeRoute(route) {
      // `route` is either a string or object
      router.push(route);
    }
  },
    template: `
    <div id="rendered-content">
      <div>
        <button @click="changeRoute('home')">Home</button>
        <button @click="changeRoute('about')">About Us</button>
        <button @click="changeRoute({path: '/user/123'})">Get ID</button>
      </div>
      <div>
      <router-view></router-view>
      </div>
    </div>
  `
});
app.use(router);
app.mount('#props')
Function Mode
You can set props to a function with Vue Router.
This gives you more fine grained control over what props Vue Router passes to your Vue component.
Vue Router calls your props function with the route object as the first parameter.
{
  path: '/user/:id',
  name: 'user',
  component: {
    template: `
    <div>
      <h1>id is {{id}}</h1>
      <h1>showProfilePicture is {{showProfilePicture}}</h1>
    </div>
    `
  },
  props: route => ({
    id: route.params.id, // Pull `id` from route params
    showProfilePicture: true // Hard code `showProfilePicture`
  })
}
  
  
    Vue School has some of our favorite Vue
    video courses. Their Vue.js Master Class walks you through building a real
    world application, and does a great job of teaching you how to integrate Vue
    with Firebase.
    Check it out!
  
  
  
 
  
    Did you find this tutorial useful? Say thanks by starring our repo on GitHub!