Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Open a modal on Vue.js route change

Currently, my vue-router configuration looks like this:

export default new Router({
  routes: [
    {
      path: '/',
      name: 'home',
      component: Home,
    },
    {
      path: '/settings',
      name: 'settings',
      component: Settings,
    }
  ],
});

Now, I want to define a new path, say /some-modal-path, on navigation to which, a modal, sayModalComponent, will open as an overlay above the current component.

Is this possible to be done with vue-router? If yes, how can it be done?

like image 660
Ayush Gupta Avatar asked Nov 23 '25 18:11

Ayush Gupta


1 Answers

Fast solution

Put <router-view> in each component

export default new Router({
      routes: [
        {
          path: '/',
          name: 'home',
          component: Home,
          children: [
            {   path: '/some-modal-path',
                component: ModalComponent,
                name: 'ModalComponent'
            }
          ]
        },
        {
          path: '/settings',
          name: 'settings',
          component: Settings,
          children: [
            {   path: '/some-modal-path',
                component: ModalComponent,
                name: 'ModalComponent'
            }
          ]
        }
      ],
    });
like image 149
Georgi Antonov Avatar answered Nov 26 '25 16:11

Georgi Antonov