【问题标题】:How to increase speed performance in Nuxt with SSR如何使用 SSR 提高 Nuxt 的速度性能
【发布时间】:2022-06-22 17:56:15
【问题描述】:
我们如何通过 SSR 提高 Nuxt 中的速度性能,主要体现在以下几点。
- 减少未使用的 JavaScript
- 避免将旧版 JavaScript 提供给现代版
- 尽量减少主线程工作
- 减少 JavaScript 执行时间
- 避免庞大的网络负载
【问题讨论】:
标签:
vue.js
nuxt.js
server-side-rendering
google-pagespeed
pagespeed-insights
【解决方案1】:
很笼统的问题,让我们逐点讨论:
- 减少未使用的 JavaScript:您可以对代码进行 tree-shake(+3rd 方)+ 延迟加载您的路线 + components(Nuxt 做得很好)
- 避免将旧版 JavaScript 提供给现代版:modern property 非常适合这一点
- 尽量减少主线程工作:提防繁重的 3rd 方脚本,如 Google Analytics/GTM、繁重的聊天、繁重的操作等。使用 Service Worker 会有所帮助,其他您也可以尝试 Partytown
- 减少 JavaScript 执行时间:同样,取决于您的代码。需要对其进行更多分析
- 避免庞大的网络负载:检查您是否在进行大量 HTTP 调用或加载 5MB 的 i18n JSON 文件
与往常一样,对于此类主题,您无法快速简单地回答。您要么需要性能专家,要么自己调试/学习。
这是nice start,你可以得到很多关于核心网络生命力的解释。
这篇frontend checklist 也是一篇值得阅读的好文章。
PS:如果问题主要是 SSR,它可能归结为在后端有更好的基础设施,更大的 VPS 服务器,一些改进的数据库,可能是一些 Elasticsearch,一些缓存等......(所有通常的你可以在后端改进的东西)
【解决方案2】:
为了速度优化,我们需要遵循以下步骤。
- 需要优化图片
- 在渲染函数 nuxt.config.js 中使用 shouldPreload
- 使用压缩器:shrinkRay(),用于压缩
- 对 Google 字体使用 dns-prefetch
- 使用缩小 js 和 css
- 优化 API 查询