Мне удалось лениво загрузить компоненты, и мне удалось лениво загрузить шаблоны, но мне не удалось объединить эти два.
Вот как я лениво загружаю компонент:
// This is in my main.js
const router = new VueRouter({
routes: [
{ path: '/lazy', component: () => import('./lazy.js') }
]
})
// And this is in lazy.js
export default {
template: '<div>Lazy loaded component</div>'
}
Это прекрасно работает, и я вижу, что lazy.js
не загружается, пока я не перехожу к /lazy
.
Вот как я лениво загружаю шаблон:
// All of this is in my main.js
const lazyTemplate = Vue.component('lazyComponent', function(resolve) {
fetch('./lazy.html')
.then(response => response.text())
.then(function(data) {
resolve({
template: data
});
});
});
const router = new VueRouter({
routes: [
{ path: '/lazy', component: lazyTemplate }
]
});
Опять же, это работает очень хорошо, и я вижу, что lazy.html
не загружается, пока я не перехожу к /lazy
.
Но моя главная проблема в том, что я просто не могу понять, как объединить их с методами,Как я могу "родным" (без т. Е. Webpack) лениво загрузить компонент, который лениво загружает шаблон?