我正在学习Vue,并且刚刚进入路由章节。我可以使用初始路由器配置使用vue / cli创建模板项目。这是路由器代码:
export default new Router({
mode: 'history',
base: process.env.BASE_URL,
routes: [
{
path: '/',
name: 'home',
component: Home,
},
{
path: '/about',
name: 'about',
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import(/* webpackChunkName: "about" */ './views/About.vue'),
},
],
});
根据代码和docs上的注释,这应该足以延迟加载About组件。
当我尝试加载应用页面时,将获取“ about.js”脚本:
如果我导航至关于浏览器,则从磁盘缓存中获取脚本:
我很困惑。我期望只有在导航到“关于”页面后才能看到脚本about.js加载。我想念什么吗?
答案 0 :(得分:0)
@TJWeems指出的discussion非常清楚。
在使用webpack-chain禁用预取插件后,我获得了预期的行为。我刚刚在根目录(与package.json相同)上创建了一个 vue.config.js ,其内容如下:
module.exports = {
chainWebpack: (config) => {
config.plugins.delete('prefetch');
}
};
请记住,我是出于好奇而这么做的。我可能会在将来的项目中启用预取插件,而只是考虑在特定情况下将其禁用。