В наличии такой компонент:
var testComponent = Vue.component('main-section', (resolve) => {
axios.post('/test.php').then( (res) => {
resolve({
template: res.data,
mounted: () => {
console.log('mounted-' + new Date().getTime());
}
});
});
});
Также роутер:
var router = new VueRouter({
routes: [
{ path: '/foo', component: testComponent },
{ path: '/bar', component: testComponent },
{ path: '*', component: testComponent }],
mode: 'history'
});
<router-link to="/foo"></router-link>
<router-link to="/bar"></router-link>
<router-link to="/somelink"></router-link>
<section class="content">
<router-view :key="$route.fullPath"></router-view>
</section>
Суть проблемы - компонент загружает шаблон только один раз, в дальнейшем при изменении адреса страницы,
mounted срабатывает, но сам компонент не перерисовывается, то есть не делает ajax запрос на сервер. По сути ситуация такая - необходимо чтобы в router-view подгружался разный шаблон, в зависимости от пути. Возможность создавать под каждый роут отдельный компонент не подходит, ибо пути динамические и сервер по каждому пути отдает разное содержимое. Да и сами роуты также заранее неизвестны. В общем, когда я кликаю по ссылкам,
console.log('mounted-' + new Date().getTime())
срабатывает, но новый шаблон с сервера не подгружается.