vue的路由懒加载
非懒加载写法:
import Login from '@/components/Login'
所有路由涉及到的文件会被打包到 app.xxx.js 中
懒加载写法:
const Login = () => import('@/components/Login')
这里要扩展说明的是 把组件按组分块:
const Login = () => import(/* webpackChunkName: "group-index" */ '@/components/Login')
这样去写的话,那么 webpackChunkName: "group-index" 的所有路由组件就会被打包到一起,如 0.faxxx.js,如果有多个组,那么就是依次 1.xxx.js,2.xxx.js。
比方说 用户相关的路由为一组,设置相关的路由为一组等,打包完成后的打印日志能看到每个组对应的js文件:

这样的话,首屏加载的时候就不会一次性下载所有路由文件,而是根据当前页面下载对应的文件,等到用户首次跳转到另一个路由组的时候再进行下载。
比如 编译后,我首次加载主页,那么会下载 group-index 对应的路由文件资源,之后跳转用户列表页,再下载 group-user 路由文件资源。


这样的话初始化的时候会比之前稍微快些,因为首次加载少下载了一些资源。
但副作用就是,当你跳转到新的分组页面的时候,会卡那么一下,因为需要等待下载路由文件资源,等待时间根据用户网路和当前路由文件资源大小决定,所以路由文件组的分割需要开发者自己进行判断。
个人建议打包后如果超过1M了可以考虑拆分一下,网速慢的话可能下载需要1~2s时间。
vue的路由懒加载的更多相关文章
- Vue 路由懒加载, VueRouter一步完成Vue的路由懒加载 一行代码搞定懒加载
Vue Router路由配置中的component里面配置即可 1 // 路由懒加载的方式加载组件 2 3 component: () => import('@/views/Detail'), ...
- vue中路由懒加载实现amd加载文件
一般我们配置路由的时候是import引入: import log from '@/components/login': { path: '/login', component: log , hidde ...
- vue-router路由懒加载(解决vue项目首次加载慢)
懒加载:----------------------------------------------------? 也叫延迟加载,即在需要的时候进行加载,随用随载. 为什么需要懒加载? 像vue这种单 ...
- 【巷子】---vue路由懒加载---【vue】
一.懒加载 也叫延迟加载或者按需加载,即在需要的时候进行加载, 二.为什么要使用懒加载 像vue这种单页面应用,如果没有应用懒加载,运用webpack打包后的文件将会异常的大,造成进入首页时,需要 ...
- vue项目性能优化(路由懒加载、gzip加速、cdn加速)
前端工程性能优化一说意义深远悠长,本章主要介绍除了一些基础优化外如何实行路由懒加载.Gzip加速.CDN加速,让网页飞的快一些. 基础优化 老生常谈的一些: 不要在模板中写复杂的表达式 慎用watch ...
- vue+element ui项目总结点(一)select、Cascader级联选择器、encodeURI、decodeURI转码解码、mockjs用法、路由懒加载三种方式
不多说上代码: <template> <div class="hello"> <h1>{{ msg }}</h1> <p> ...
- vue路由懒加载及组件懒加载
一.为什么要使用路由懒加载 为给客户更好的客户体验,首屏组件加载速度更快一些,解决白屏问题. 二.定义 懒加载简单来说就是延迟加载或按需加载,即在需要的时候的时候进行加载. 三.使用 常用的懒加载方式 ...
- vue进阶:vue-router之导航守卫、路由元信息、路由懒加载
1.导航被触发 2.在失活的组件里调用离开守卫:beforeRouteLeave —— 组件内守卫(离开组件). 3.调用全局的beforeEach守卫 —— 全局守卫(进入组件). 4.在重用组件里 ...
- 「Vue.js」Vue-Router + Webpack 路由懒加载实现
一.前言 当打包构建应用时,Javascript 包会变得非常大,影响页面加载.如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了.结合 Vue ...
随机推荐
- bootstrap4.1下拉菜单
<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...
- cxgrid动态多表头
function TForm15.CreateBand(View: TcxGridDBBandedTableView; BandCaption, ParentBandCaption: String) ...
- zeppelin中运行spark streaming kakfa & 实时可视化
notebook方式运行spark程序是一种比较agile的方式,一方面可以体验像spark-shell那样repl的便捷,同时可以借助notebook的作图能力实现快速数据可视化,非常方便快速验证和 ...
- gitlab 部署
Gitlab 安装 GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目.它拥有与Github类似的功能, ...
- Spark技术的总结 以及同storm,Flink技术的对比
spark总结 1.Spark的特点: 高可伸缩性 高容错 基于内存计算 支持多种语言:java,scala,python,R 高质量的算法,比MapReduce快100倍 多种调度引擎:可以运行于Y ...
- 【系统架构】亿级Web系统搭建(1):Web负载均衡
当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要通过搭建不同的服务 ...
- ViewPager无限滑动
2016-6-19 前言 View轮播效果在app中很常见,一想到左右滑动的效果就很容易想到使用ViewPager来实现.对于像我们常说的banner这样的效果,具备无限滑动的功能是可以用ViewPa ...
- java面试和笔试
1.Java中异常处理机制和事件机制. 2.String是最基本的数据类型吗? 基本数据类型包括byte.int.char.long.float.double.boolean和short. java. ...
- Ubuntu18.04 - 安装深度桌面(Deepin Linux Desktop)
深度Linux官网:https://www.deepin.org 深度桌面感觉确实不错,所以打算安装上来,以后体验一下,下面是安装的命令: 1, sudo add-apt-repository ppa ...
- springboot常用注解
@SpringBootApplication:包含了@ComponentScan.@Configuration和@EnableAutoConfiguration注解.其中@ComponentScan让 ...