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')}]
})

vue 之 路由懒加载相关推荐

  1. vue实现路由懒加载,react实现路由懒加载

    组件懒加载也叫按需加载: 当打包构建应用时,js 包会变得非常大,影响页面加载.如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了. 打包 bui ...

  2. vue中路由懒加载浅析

    http://www.cnblogs.com/zhanyishu/p/6587571.html 懒加载主要分为两步: 1.webpack配置使它支持懒加载. 2.router层面异步的方式加载组件. ...

  3. Vue Router系列之路由懒加载

    文章の目录 一.具体需要 3 步: 1.安装 `@babel/plugin-syntax-dynamic-import` 包. 2.在 babel.config.js 配置文件中声明该插件. 3.将路 ...

  4. Vue-Router + Webpack 路由懒加载实现

    一.前言 https://segmentfault.com/a/1190000015904599 当打包构建应用时,Javascript 包会变得非常大,影响页面加载.如果我们能把不同路由对应的组件分 ...

  5. Vue—核心概念—异步组件和路由懒加载

    原文地址:Vue 异步组件&路由懒加载 目录 异步组件 异步组件介绍 异步组件声明 高级异步组件 路由懒加载 路由懒加载介绍 路由懒加载方法 把组件按组分块 异步组件 异步组件介绍 在开发大型 ...

  6. 前端学习(2742):重读vue电商网站52之路由懒加载

    当打包构建项目时,JavaScript 包会变得非常大,影响页面加载.如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了. 具体需要 3 步: 安 ...

  7. vue路由懒加载_优化vue项目的首屏加载速度

    最近使用vue-cli3构建了一个小型的博客系统,完工之后,build打包出来发现一个chunk-vendors包就有1.1m,部署上去之后,访问的时候,首屏加载非常慢.居然需要21s,体验极差. 这 ...

  8. vue“路由懒加载” 技术,让网页快速加载 (优化篇)

    (含代码示例.截图演示)让中大型vue项目,按需加载文件,让网页快速渲染! 官方文档:路与懒加载 所谓的路由懒加载: 代码示例 · 对比: 1. 没有优化的代码(截图1 · 省略) import Vu ...

  9. Vue 路由懒加载

    路由和组件的常用两种懒加载方式: 1.vue异步组件实现路由懒加载 component:resolve=>(['需要加载的路由的地址',resolve]) 2.es提出的import(推荐使用这 ...

最新文章

  1. 手把手教你用CAB发布OCX的简单办法
  2. (转)字典树原理+实现
  3. Microsoft Ajax Beta1 - 边学边用边补充 (Part 2 - DragDropList)
  4. mysql client version_下载mysqlclient问题报错
  5. 面对互联网上的汩汩恶意,如何构建反欺诈体系?
  6. 201521123004 《Java程序设计》第2周学习总结
  7. Android 原生开发、H5、React-Native Flutter 使用利弊和场景技术分享
  8. 免费 web api 接口大全
  9. “真正的机器人测试” - 淘宝泛终端机器人自动化测试实践
  10. Scrum 敏捷项目管理
  11. 微信公众号开通留言功能条件有哪些?
  12. GDS中如何加logo
  13. c语言四个人中有一个人是小偷,、甲,乙,丙,丁四个人中有一个人是小偷,请根据四个人的谈话判断谁是小偷?已知四个人中有一个人说假话...
  14. MYSQL 视图 触发器 存储过程 事务 索引
  15. 计算机图形学【GAMES-101】3、着色计算(深度缓存、着色模型、着色频率)
  16. [ArcGIS] 空间分析(八) 水文分析
  17. vi linux insert切换该行第一个字符,Linux之Vi命令讲解
  18. ec20 模块移植 linux,移遠EC20 4G模塊Linux驅動移植和測試
  19. BUUCTF misc 专题(25)神秘龙卷风
  20. 【krpano】可拖拽相框遮罩

热门文章

  1. navicat连接数据报10060错误
  2. 微信小程序图片验证组件封装
  3. oracle pga的作用,Oracle PGA作用
  4. 我怕有一天,也不相信爱情
  5. 关于移动端页面滑动报错 [InterUnableUnable to preventDefault inside passive或 fastclick.js:446 [InterUn :
  6. Google analytics是什么,有什么作用
  7. 计算机视觉方面相关项目,『哈尔滨985/211大学科研营』计算机视觉项目
  8. 计算机视觉博士去向,为什么现在不看好 CV 方向了呢?
  9. mes系统的主要功能是什么?看完这篇你就懂了
  10. TCP/IP 协议详解内容总结