在导入时评估的 Vue 路由器组件

Vue router components evaluated on import

我有一个像

这样的应用程序
import Vue from 'vue';
import VueRouter from 'vue-router';
import router from './routes.es6';

Vue.use(VueRouter);

new Vue({
  router,
}).$mount('#app');

routes.es6 包含我的路由器模块:

import VueRouter from 'vue-router';
import Index from './pages/index.vue';

const routes = [
  {
    path: '/',
    name: 'index',
    component: Index,
  },
  ...
];

export default new VueRouter({
  routes,
});

这可行,但有一个主要缺点。假设我的索引组件定义如下

<template>
    ...
</template>

<script>
  require(...)

  export default {
    ...
  };
</script>

现在所有 requireimport 语句在组件被导入 routes.es6 文件后被评估,并且它们被注入到主应用程序中,即使它们应该被限定在具体路线。

如何克服这个问题?

它被称为 - LAZY LOADING

在 Vue-Router 文档中有很好的解释。 https://router.vuejs.org/en/advanced/lazy-loading.html