我想在 Vue Router 中引入延迟加载,这样部分代码只会按需加载。
我正在关注 Vue Router 中延迟加载的官方文档: https ://router.vuejs.org/en/advanced/lazy-loading.html
因此,对于测试,我更改了 Vault 模块在路由器文件中的导入方式:
import Vue from 'vue';
import Router from 'vue-router';
// Containers
import Full from '@/containers/Full';
// Views
// TODO: views should be imported dynamically
import Dashboard from '@/views/Dashboard';
const Vault = () => import('@/views/Vault');
import Page404 from '@/views/Page404';
import Page500 from '@/views/Page500';
import Login from '@/views/Login';
Vue.use(Router);
export default new Router({
routes: [
{
path: '/',
redirect: '/dashboard',
name: 'VENE',
component: Full,
children: [
{
path: 'dashboard',
name: 'dashboard',
component: Dashboard
},
{
path: 'vault',
name: 'vault',
component: Vault
},
],
},
{
path: '/login',
name: 'Login',
component: Login,
},
{
path: '/404',
name: 'Page404',
component: Page404,
},
{
path: '/500',
name: 'Page500',
component: Page500,
},
],
});
一切都很好,但是,当我第一次打开应用程序时,应该延迟加载的提取包被预先加载:
当我使用路由器转到该视图时,它再次出现在 Dev Tools Network 选项卡中,但表示它是从磁盘加载的,因此该捆绑包显然是在第一页加载时加载的,这完全违背了延迟加载的想法。