在Nuxt.js SSR项目中,性能优化是核心议题。本文基于实际项目经验,分享关键的性能分析方法。
首先,通过nuxt.config.js配置performance选项来监控构建时间:
export default {
performance: {
maxAssetSize: 500000,
maxEntrypointSize: 500000
}
}
其次,使用Chrome DevTools的Performance面板分析首屏渲染时间。关键指标包括:
- FCP(首次内容绘制)
- FMP(首次重大绘制)
- LCP(最大内容绘制)
针对大型组件,建议采用<NuxtComponent>动态导入:
<template>
<component :is="dynamicComponent" />
</template>
<script>
export default {
data() {
return {
dynamicComponent: () => import('@/components/LargeComponent.vue')
}
}
}
</script>
数据库查询优化方面,启用nuxtjs-apollo插件的缓存策略:
// nuxt.config.js
export default {
modules: [
['@nuxtjs/apollo', {
clientConfig: {
uri: process.env.GRAPHQL_URL,
cache: new InMemoryCache({
// 启用缓存
dataIdFromObject: o => o.id
})
}
}]
]
}
最后,通过nuxt generate命令构建静态站点时,使用--analyze参数生成bundle分析报告,定位性能瓶颈。
实际项目中,通过以上优化手段,首屏加载时间从8.2秒降至3.1秒,用户体验显著提升。

讨论