vue——懒加载(异步延迟和彻底懒加载)

5 篇文章 1 订阅
订阅专栏

引入问题

单页面应用的致命问题: 首屏加载极慢

原因:
脚手架默认把所有组件集中打包为一个巨大的app.js文件,
首屏一次性全部下载。


本章教程皆以Vue脚手架初始示例为例:

npm run serve:
这里的app.js就包含了所有的组件(Home.vue和About.vue),此时文件大小124KB《在这里插入图片描述
npm run build:(打包项目)
可以看到app.js中也会包含所有组件
在这里插入图片描述


所以我们应该采用优化策略——懒加载
(用户想看什么就只下载什么,用户暂时不想看的,就没必要下载!)

一、默认: 异步延迟加载

定义:
先下载并显示首页内容。其它页面组件在不影响主屏下载速度的情况下进行 异步下载

优点: 既加快首屏加载的速度,又能享受单页面应用带来的好处。
缺点: 偷跑流量

步骤:

  1. 千万不要在router/index.js开头过早的引入除首页之外的其它页面组件。
    凡是用Import引入的东西,vue都会打包在app.js中,在首屏下载。

  2. 改造路由字典项:

		{
			  path:"/相对路径", 
			  //使用匿名函数自调
			  component: ()=>import(
				   // 打包时的分段名:自定义js文件名.xxx.js
				   /* webpackChunkName: "自定义js文件名" */
				   "../views/页面组件.vue"
			  )
		}

结果图解

使用异步延迟加载后:

npm run build(打包项目):
可以看到使用异步延迟后,打包后的js分为了两个,一个是About.xxx.js,一个是Home.xxx.js
在这里插入图片描述
异步延迟加载的文件后 rel = "prefetch"异步先获得,但不需要立刻加载显示
在这里插入图片描述


npm run serve:
在首页时也异步下载两个js文件,一个是Home.vue组件,114KB;一个是About.vue组件,12.6KB
此时突出缺点:用户未点开About组件但已经下载,浪费流量
在这里插入图片描述

二、彻底懒加载(手动配置)

定义:
如果用户不请求下一个页面组件,则不会提前下载其他页面组件

优点: 节约流量.
缺点: 首次切换页面时需要临时下载页面组件,可能会慢

步骤

1. 实现异步延迟加载的两步

i. 不要提前引入
ii. component变成匿名箭头函数

		{
			  path:"/相对路径", 
			  //使用匿名函数自调
			  component: ()=>import(
				   // 打包时的分段名:自定义js文件名.xxx.js
				   /* webpackChunkName: "自定义js文件名" */
				   "../views/页面组件.vue"
			  )
		}

2. 配置脚手架,去掉prefetch

i 在脚手架根目录,创建vue.config.js
ii. 在vue.config.js中添加以下固定代码
iii. 强调: 必须重启npm run serve

		module.exports={
			  chainWebpack:config=>{
				    config.plugins.delete("prefetch")
				    //删除index.html开头的带有prefetch属性的link
				    //不要异步下载暂时不需要的页面组件文件
			  }
		}

结果图解

npm run build(打包项目):
dist/js 中的js文件跟异步延迟加载一样,仍为两个
在这里插入图片描述
但是index.html中少了rel = "prefetch"属性的link
在这里插入图片描述
npm run serve:
打开首页时,只有app.js文件下载(Home组件)
在这里插入图片描述
切换成About组件时,才开始下载about.js
在这里插入图片描述

vue 懒加载
Allanwhy的博客
05-06 451
懒加载概念 对于页面有很多静态资源的情况下(比如网商购物页面),为了节省用户流量和提高页面性能,可以在用户浏览到当前资源的时候,再对资源进行请求和加载。 为什么需要懒加载? 像vue这种单页面应用,如果没有应用懒加载,运用webpack打包后的文件将会异常的大,造成进入首页时,需要加载的内容过多,时间过长,会出啊先长时间的白屏,即使做了loading也是不利于用户体验,而运用懒加载则可以将页面进行...
vue懒加载
晴天Smile
08-07 783
import infiniteScroll from 'vue-infinite-scroll' Vue.use(infiniteScroll) vue全局引入 div class="grid-demo" v-if="active_tab=='idemo'" v-infinite-scroll="getdata" infinite-scroll-dis
Vue 懒加载
最新发布
qq_34419312的博客
09-04 6345
Vue 懒加载
vue 组件异步加载(按需加载)
热门推荐
朽木·露琪亚
11-05 1万+
有时候打包出来的js文件过大,严重影响访问速度,这个时候我们就不得不考虑相关方法来提速,毕竟这可是会影响浏览量的。 如果只是针对这个问题的话,我们可以考虑以下两方面: nignx开启gzip、缓存。 文件再次拆分-异步加载 下面就主要说以下vue组件异步加载的方法:(测试所用的webpack:^4.12.0) 1.使用() => import() 代码: 打包: 界面效果: 2.使...
Vue懒加载
laoli360的博客
10-10 148
component: Login // 改成这个写法 component: () => import('@/views/Login.vue') 它可以让 用户加载到什么组件 才会获取对应组件 方便效率降低流量数据 路由懒加载 - 查看文档: 路由懒加载 | Vue Router
vue组件懒加载 ajax,前端性能优化成神之路--vue组件懒加载Vue Lazy Component )
weixin_42438750的博客
08-05 1171
---恢复内容开始---使用组件懒加载的原因我们先来看看这样的一个页面,页面由大量模块组成,所有模块是同时进行加载,模块中图片内容较多,每个模块的依赖资源较多(包括js文件、接口文件、css文件等)所以我们在加载这样的页面会非常的慢解决思路——加载优先级在完成了组件化的拆分,确保模块之间不会互相影响和产生耦合之后,我们可以方面地调整加载策略。加载的策略是根据可见性来处理优先级问题。优先加载首屏可见...
vue延迟渲染组件_性能优化组件懒加载: Vue Lazy Component 介绍
weixin_39746241的博客
12-31 1216
这篇文章分享了从遇到前端业务性能问题,到分析、解决并且梳理出通用的Vue 2.x 组件懒加载解决方案(Vue Lazy Component )的过程。初始加载资源过多问题起源于我们的一个页面,下面是这个页面的截图和初次请求的瀑布图。初始加载的时候,一共请求了155个资源,请求的瀑布图就快要和页面一样长了?初始加载的资源过多导致在 domInteractive 之后,页面花费了大量时间加载子资源,...
css 同步加载,同步加载,异步加载,懒加载,预加载
weixin_35713375的博客
08-04 1591
同步加载默认的就是同步加载同步加载: 同步模式又称阻塞模式,会阻止浏览器的后续处理,停止了后续的文件的解析,执行,如图像的渲染。流览器之所以会采用同步模式,是因为加载的js文件中有对dom的操作,重定向,输出document等默认行为,所以同步才是最安全的。通常会把要加载的js放到body结束标签之前,使得js可在页面最后加载,尽量减少阻塞页面的渲染。这样可以先让页面显示出来。简单来说:js的网页...
Vue异步组件使用详解
08-30
直接在`components`对象中定义一个函数,这个函数内部包含`require`来加载异步组件,同样可以达到异步加载的效果。 6. **异步组件的优势** - **按需加载**:只有当组件需要被渲染时,其对应的代码才会被加载,...
vue3动态加载音频文件,用于不同场景加载不同的文件
一起学习
12-01 2446
本文主要介绍如何在vue3中动态加载音频文件
vue异步加载
weixin_34223655的博客
10-31 186
2019独角兽企业重金招聘Python工程师标准>>> ...
vue中的懒加载
weixin_43286206的博客
07-13 543
vue懒加载作用:将导入路由组件的语句放到函数当中,在函数没有被调用的时候,导入语句不执行,来节省批量导入导致的运行压力,对服务器较友好。 例如:在index.js路由文件中 const newsInfor = () => import('../components/newsInfor.vue'); const routes = [ { path:'/newsInfor', component:newsInfor //相当于用到这个组件时 再执行函数 导
Vue2组件懒加载详解及其Webpack实现策略
懒加载,又称延迟加载,是指在用户需要访问某个功能或组件时才进行加载,以提高初始页面加载速度和用户体验。在单页应用开发中,如果未采用懒加载策略,大型的Webpack打包文件会导致首页加载时间过长,内容过多,这...
173
原创
614
点赞
1917
收藏
192
粉丝
关注
私信
写文章

热门文章

  • Git报错解决:OpenSSL SSL_read: Connection was reset, errno 10054 111553
  • Github——git本地仓库建立与远程连接(最详细清晰版本!附简化步骤与常见错误) 78463
  • c++string函数(一)——find、rfind详细用法 64591
  • CSS盒子的三种类型(border-box、content-box) 32222
  • CSS3——@keyframe动画的基本用法,常见错误及解决方案 32015

分类专栏

  • JavaScript/Nodejs 39篇
  • react 14篇
  • vue 5篇
  • HTTP/浏览器 5篇
  • Ajax 3篇
  • Database 5篇
  • 其他 4篇
  • 前端框架 2篇
  • C/C++ 12篇
  • 算法 21篇
  • 云服务 2篇
  • HTML/CSS 12篇
  • Git 7篇
  • 项目 5篇
  • 数据结构 2篇
  • 题解 22篇
  • STL 8篇
  • 蓝桥杯 9篇

最新评论

  • Github——git本地仓库建立与远程连接(最详细清晰版本!附简化步骤与常见错误)

    Mues?: fatal: the remote end hung up unexpectedly Everything up-to-date 这是什么原因啊,求帮忙解答一下

  • Github——git本地仓库建立与远程连接(最详细清晰版本!附简化步骤与常见错误)

    你脸上有BUG: 有什么报错么

  • Github——git本地仓库建立与远程连接(最详细清晰版本!附简化步骤与常见错误)

    下雪了 ~: 文件一直添加不上怎么回事

  • vue——不同组件中监听Localstorage变化并实时更新

    风的山丘: 代码运行成功!十分感谢!

  • Github——git本地仓库建立与远程连接(最详细清晰版本!附简化步骤与常见错误)

    youaresohandsome: 我提交的本地分支名是 git push -u origin main

最新文章

  • Deflate内部实现(LZ77无损压缩算法)超详细图解算法版~
  • 如何解决input输入时存在浏览器缓存问题?
  • Promisification、微任务
2024年4篇
2023年8篇
2022年13篇
2021年79篇
2020年31篇
2019年41篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你脸上有BUG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司遵义网站优化高端商务网站优化都有什么服务网站seo优化报价济南网站关键词排名优化贵阳网站优化外包遵义网站优化推广公司商丘网站排名优化选哪家快照seo网站优化揭阳外贸网站关键词优化临猗网站优化哪家好衡阳网站推广优化公司湘潭品质营销型网站优化网站关键词手机端优化防城区网站seo优化排名一站式营销型网站优化网站seo网络结构优化商丘口碑好的网站优化下城区网站推广优化优化网站的好处江干区网站优化排名全网推广网站优化效果仙桃市网站关键词优化效果安阳网站关键词优化工具付费网站优化服务商南宁建站公司南宁优化网站河南新站网站优化平台商城网站加载慢如何优化威海济南网站优化找哪家合适什么是网站主题优化杨浦区官方网站优化定制方案香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化