玩转 Vue 3 全家桶
大圣
前百度前端架构师
38321 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 44 讲
玩转 Vue 3 全家桶
15
15
1.0x
00:00/00:00
登录|注册

18 | 实战痛点4:Vue 3项目中的性能优化

通过Lighthouse性能报告和Performace监测工具定位项目瓶颈
发送性能指标数据给后端进行监控
使用Performance API获取性能指标数据
使用骨架图组件提升页面加载体验
断点续传优化文件上传体验
预先解析图片的模糊版本
通过性能监测工具发现代码运行瓶颈并进行优化
使用computed、template、v-for等优化Vue代码
遵循Vue官方最佳实践
高效利用浏览器缓存机制
文件打包和压缩,使用懒加载
优化HTTP请求,减少三次握手次数
使用标签进行DNS预解析
Vue中通过vue-router计算当前路由匹配的组件并显示到页面
浏览器解析HTML代码,加载CSS和JavaScript
浏览器发起网络请求,服务器返回HTML代码
浏览器查询域名对应的IP地址
性能监测报告
用户体验优化
代码效率优化
网络请求优化
用户输入URL到页面显示的过程
性能优化

该思维导图由 AI 生成,仅供参考

你好,我是大圣,欢迎进入课程的第 18 讲。
在上一讲中,我们聊了项目中的权限设计,相信你对 Vue 项目中如何设计,以及如何实现权限都有了自己的心得。今天,我们来聊一下 Vue 项目中的另外一个难点:性能优化。性能优化是一个老生常谈的话题,如果你是前端从业者,那么无论是求职的简历,还是晋升的 PPT,性能优化相关的内容都是不可或缺的。
那么在 Vue 项目中,我们应该如何做性能优化呢?下面,我们会先从 Vue 项目在整体上的执行流程谈起,然后详细介绍性能优化的两个重要方面:网络请求优化和代码效率优化不过,在性能优化之外,用户体验才是性能优化的目的,所以我也会简单谈一下用户体验方面的优化项。最后,我还会通过性能监测报告,为你指引出性能优化的方向。

用户输入 URL 到页面显示的过程

我们先来聊一个常见的面试题,那就是用户从输入 URL,然后点击回车,到页面完全显示出来,这一过程中到底发生了什么?
通过下图,我们可以从前端的视角看到从输入 URL 到页面显示的大致过程:
简单来说,就是用户在输入 URL 并且敲击回车之后,浏览器会去查询当前域名对应的 IP 地址。对于 IP 地址来说,它就相当于域名后面的服务器在互联网世界的门牌号。然后,浏览器会向服务器发起一个网络请求,服务器会把浏览器请求的 HTML 代码返回给浏览器。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Vue 3项目性能优化是前端开发的重要话题。本文从用户输入URL到页面显示的过程出发,介绍了项目页面的执行流程,并探讨了性能优化的关键方面:网络请求优化和代码效率优化。在网络请求优化方面,文章提到了使用<link rel="dns-prefetch">标签进行DNS预解析、文件打包、压缩和懒加载等策略。此外,还介绍了利用浏览器缓存机制和缓存相关的Header来高效复用文件。通过这些优化策略,可以缩短页面显示时间,提升用户体验。文章还提到了使用可视化插件来查看项目代码文件大小的分布,并介绍了如何在Vite中加载可视化分析插件。在代码效率优化方面,文章强调了遵循Vue官方的最佳实践,以及通过性能监测工具发现代码运行的瓶颈后进行优化。此外,还探讨了用户体验优化的重要性,如预先加载模糊版本的图片以提升页面加载体验。最后,文章介绍了性能监测报告的重要性,以及通过Performance API获取性能指标数据并实现网页性能的监控。整体而言,本文通过深入浅出的方式,为读者提供了在Vue 3项目中进行性能优化的实用方法和技巧。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《玩转 Vue 3 全家桶》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(14)

  • 最新
  • 精选
  • ll
    性能优化这个问题,首先要知道问题是怎么是怎么产生的?而这一切的根源其实包含在“从输入URL到页面生成发生了什么?”这个问题中,感兴趣的可以参考《浏览器工作原理与实践》,导航、渲染、页面等章节。 要想性能优化好,底层原理少不了。

    作者回复: cool,浏览器原理的课也贼棒 强推

    2021-11-26
    17
  • Geek_d47f78
    支持十几个G的文件上传,断点续传,分片也行吗?

    作者回复: 十几个G的话,就建议用专门的软件上传了,甚至走http都不太合适

    2021-11-28
    3
    2
  • @
    这时候我们就需要用懒加载和按需加载的方式,去优化项目整体的体积。 具体实操呢,想知道解决办法

    作者回复: 把import Button from './Button'换成 import('./Button.vue'),这里可以去vue-router官网看例子 https://next.router.vuejs.org/zh/guide/advanced/lazy-loading.html#%E6%8A%8A%E7%BB%84%E4%BB%B6%E6%8C%89%E7%BB%84%E5%88%86%E5%9D%97

    2021-11-26
    2
  • 奇奇
    为什么我的是在项目的跟目录多了一个 stats.html ,并不是在 build 后 dist 中生成呢

    作者回复: 我写的就是根目录的stat.html哈

    2021-11-29
    1
  • Danny
    dns-prefetch 怎么让打包后的代码中添加这个呢

    作者回复: 代码中的index.html中加上即可

    2021-11-27
    2
    1
  • Geek_24e4e0
    Composition API + <script setup> const { product } = defineProps<{ product: Product; }>(); 怎么监听 product 的改变呢

    作者回复: props解构之后就没有响应式了,如果想继续保持的话,可以用toRef包裹,或者不实用解构,使用props.product

    2021-12-04
    2
  • 海阔天空
    性能优化是一个讲不完的话题。以前项目做性能优化就是 按需优化。当然老师讲的,性能优化的一个重要原则,是不要过度优化。非常好,给了一个参考的方向。
    2021-11-26
    8
  • 润培
    虽说Vue3底层做了很多优化,但很多业务逻辑还是我们自己实现的,例如文中提到的斐波那契数列。 这部分的优化更依赖于我们的算法能力。
    2021-11-26
    3
  • 南山
    用户体验的优化:比如增加骨架屏 打包优化:按需加载和懒加载
    2021-11-26
    1
  • escray
    性能优化这个专题,如果敞开讲,估计能直接出一个专栏。 fib 修改之前,312 ms,52.2% 优化之后,居然没有找到,是在过于小白了。 Performance 的时间计算部分,似乎有不少属性都已经 deprecated 了。
    2023-11-12归属地:安徽
收起评论
显示
设置
留言
14
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部