mar*_*lle 4 router lazy-loading vue.js
我正在学习 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'),
},
],
});
Run Code Online (Sandbox Code Playgroud)
根据代码和文档的注释,这应该足以延迟加载“关于”组件。
当我尝试加载应用程序页面时,会获取“about.js”脚本:
如果我导航到“关于”,浏览器将从磁盘缓存中获取脚本:
我很困惑。我期望只有在导航到“关于”页面后才能看到加载的脚本 about.js。我错过了什么吗?
@TJWeems 指出的讨论非常明确。
使用 webpack-chain 禁用预取插件后,我获得了预期的行为。我刚刚在我的根目录上创建了一个vue.config.js(与 package.json 相同),内容如下:
module.exports = {
chainWebpack: (config) => {
config.plugins.delete('prefetch');
}
};
Run Code Online (Sandbox Code Playgroud)
请记住,我这样做是出于好奇。我可能会在未来的项目中启用预取插件,并考虑在特定情况下禁用它。
| 归档时间: |
|
| 查看次数: |
3225 次 |
| 最近记录: |