Vue路由器-子级路由更改时,父级组件将调用beforeDestroy

时间:2018-09-26 00:28:33

标签: vue.js webpack vue-router

我的路线定义如下

{
path: '/menu',
component: () => import('./Menu.vue'),
children: [
  {
    path: 'admin',
    component: () => import('./menus-admin/MenusAdmin.vue'),
    name: 'menusAdmin'
  },
  {
    path: 'import',
    component: () => import('./menus-admin/menus-import/MenusImport.vue'),
    name: 'menusImport'
  }
 ]
}

当我使用admin组件在importrouter-link路线之间导航时,父Menu.vue组件被破坏并再次创建。我希望Menu.vue组件不会被破坏,除非我导航到完全不同的路线。这是一个问题,因为我实现了一些生命周期挂钩,当子路由更改时,我不想一遍又一遍地调用它们。 难道我做错了什么?这是错误还是功能?

1 个答案:

答案 0 :(得分:0)

我发现了问题。我的<router-view>上有:key="$route.fullPath"。那就是迫使它在每次路线更改时重新渲染所有内容。

删除了它,并按预期工作。