У многих возникает вопрос: как перезагрузить компонент, когда маршрут изменен, но компонент тот же?
У меня противоположная проблема. Компонент обновляется, когда маршрут «до» находится на другом дочернем уровне, чем маршрут «от».
Vue router 3.0.6.
Это для замены из маршрута BusinessCaseDetailInsert на маршрут BusinessCaseDetail:
this.$router.replace({ name: 'BusinessCaseDetail', params: { id: newData.BusinessCaseId } });
1) Компонент не обновляется, когда маршруты «до» и «из» находятся на одном уровне. Желательно.
var businessCaseDetailRoutes = [
{
path: 'business-case-detail-:id',
name: 'BusinessCaseDetail',
component: () => import('@/components/panels/businesscases/businesscase-detail'),
props: (route) => getBusinessCaseDetailProps(route)
},
{
path: 'business-case-insert',
name: 'BusinessCaseDetailInsert',
component: () => import('@/components/panels/businesscases/businesscase-detail')
}
];
2) Обновление компонента происходит, когда маршруты «до» и «из» не находятся на одном уровне. Это не желательно. : - (
var businessCaseDetailRoutes = [
{
path: 'business-case-detail-:idbc',
component: '<router-view></router-view>',
children: [
{
path: '',
name: 'BusinessCaseDetail',
component: () => import('@/components/panels/businesscases/businesscase-detail'),
props: (route) => getBusinessCaseDetailProps(route)
},
{
...
}
]
},
{
path: 'business-case-insert',
name: 'BusinessCaseDetailInsert',
component: () => import('@/components/panels/businesscases/businesscase-detail')
}
];
Мне нужно избегать обновления компонента, когда целевой маршрут определен на разных дочерних уровнях.