vue 之 路由懒加载

vue 之 路由懒加载vue 打包后的 js 文件越来越大 这会是影响加载时间的重要因数 当构建的项目比较大的时候 懒加载可以分割代码块 提高页面的初始加载效率 下面是几种常见 vue 路由懒加载的方法

vue打包后的js文件越来越大,这会是影响加载时间的重要因数。当构建的项目比较大的时候,懒加载可以分割代码块,提高页面的初始加载效率。下面是几种常见vue路由懒加载的方法。

方法一 resolve

这一种方法比较常见。它主要是使用了resolve的异步机制,用require代替了import,实现按需加载,下面是代码示例:

import Vue from 'vue' import Router from 'vue-router' // import HelloWorld from '@/components/HelloWorld' Vue.use(Router) export default new Router({ routes: [ // { // path: '/', // name: 'HelloWorld', // component: HelloWorld // } { path: '/', name: 'HelloWorld', component: resolve => require(['@/components/HelloWorld'], resolve) } ] }) 

方法二 官网方法

vue-router在官网提供了一种方法,可以理解也是为通过Promiseresolve机制。因为Promise函数返回的Promiseresolve组件本身,而我们又可以使用import来导入组件。整合起来代码示例如下:

import Vue from 'vue' import Router from 'vue-router' // import HelloWorld from '@/components/HelloWorld' Vue.use(Router) export default new Router({ routes: [ // { // path: '/', // name: 'HelloWorld', // component: HelloWorld // } { path: '/', name: 'HelloWorld', component: () => import('@/components/HelloWorld.vue') } ] }) 

官网中还提供了通过注释语法来提供chunk name的方法,但是webpack的版本要高于2.4的版本。感兴趣的可以到官网了解一下。

方法三 require.ensure

这种模式可以通过参数中的webpackChunkName将js分开打包。

import Vue from 'vue' import Router from 'vue-router' // import HelloWorld from '@/components/HelloWorld' Vue.use(Router) export default new Router({ routes: [ // { // path: '/', // name: 'HelloWorld', // component: HelloWorld // } { path: '/', name: 'HelloWorld', component: resolve => require.ensure([], () => resolve(require('@/components/'+componentName)), 'webpackChunkName') } ] }) 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220267.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午8:52
下一篇 2026年3月17日 下午8:52


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号