Nuxt速度优化、性能优化、加载优化、首页加载优化、白屏优化、打包优化集合

2 篇文章 0 订阅
订阅专栏

本文会讲解决Nuxt首页加载慢、Nuxt的速度优化、Nuxt的性能优化、Nuxt的加载优化、Nuxt的首页加载优化、Nuxt的白屏优化、Nuxt的打包优化等集合。

  • 优化前

Nuxt优化

  • 优化后

Nuxt优化

这里我总结一下关于我博客的优化,如何提升这么多的。

1.按需引入UI框架,我这里使用的是Element-UI

  • 先安装依赖(按需引入才需要)
npm i babel-plugin-component
// or
yarn add babel-plugin-component
  • 在plugins下的element-ui.js写入
import Vue from 'vue'
import { Button, Input, Row, Col } from 'element-ui'

Vue.use(Row);
Vue.use(Col);
Vue.use(Input);
Vue.use(Button)
Vue.prototype.$loading = Loading.service;
  • 在nuxt.config.js中写入
module.exports = {
  // ...
  css: [
    'element-ui/lib/theme-chalk/index.css'
  ],
  plugins: [{ src: '@/plugins/element-ui' }],
  build: {
    vendor: ['element-ui'],
    transpile: [/^element-ui/],
    babel: {
      plugins: [
        [
          'component',
          {
            libraryName: 'element-ui',
            styleLibraryName: 'theme-chalk'
          }
        ]
      ]
    },
  }
  // ...
}

2.减少使用到的package.json的包

什么意思呢?就是说例如我博客,之前为了花里胡哨,加了animate.css等动画效果,其实用处并不大,去掉并减少消耗性能,大家可以检查一下相关的npm包。

3.不使用内联样式,使用scss的全局变量,全局样式,减少多个页面重复的css

4.请求分开服务端渲染及客户端渲染,并尽可能的减少请求

  • 我首页有3个接口,其中1个接口需要seo,那么就使用asyncData或者fetch去服务端渲染,其他接口则在mounted里请求。

  • 因为服务器的开销非常大,而且是同步去执行异步加载,所以为什么首页白屏这么久就是这个原因,可以减少服务器压力,分开请求,不需要seo的放到客户端去请求。

async fetch() {
    const data = {
      pageNum: 0,
      pageSize: 0,
    };
    await queryArticle(data).then((res) => {
      this.articleData = res.list;
    });
  },
  
  mounted() {
    this.getTags();
  },
  
  methods: {
    // 获取标签
    getTags() {
      queryTags({ pageNum: 0, pageSize: 0 }).then((res) => {
        this.tagItems = res.list;
      });
    },
  },

5.配置nginx的Gzip、http2

# ...
http {

  # gzip模块设置,使用 gzip 压缩可以降低网站带宽消耗,同时提升访问速度。
  gzip  on;                     #开启gzip
  gzip_min_length  1k;          #最小压缩大小
  gzip_buffers     4 16k;       #压缩缓冲区
  gzip_http_version 1.0;        #压缩版本
  gzip_comp_level 2;            #压缩等级
  gzip_types   text/plain text/css text/xml text/javascript application/json application/x-javascript application/xml application/xml+rss font/ttf font/otf image/svg+xml;#压缩类型
  
  server {
    listen 443 ssl http2;
    # ...
  }
  
  # ...
}

配置好后可以在浏览器F12的networks查看Content-Encoding是否有gzip

Nuxt优化

或者在Headers下查看

Nuxt优化

查看http2

打开f12的network,图片红色框框头部右键点开Protocol,即可查看了

Nuxt优化

Nuxt优化

6.有用到图片的全部压缩并转成webp格式,如果你们需要兼容IE,那么得再做兼容处理了,我这里就是直接使用webp格式的图片。

7.nuxt项目也开启gzip、br

  • 先安装nuxt-precompress
yarn add nuxt-precompress
  • 在nuxt.config.js中写入
module.exports = {
  // ...
  modules: [
    'nuxt-precompress',
  ],
  nuxtPrecompress: {
    gzip: {
      enabled: true,
      filename: '[path].gz[query]',
      threshold: 10240,
      minRatio: 0.8,
      compressionOptions: { level: 9 },
    },
    brotli: {
      enabled: true,
      filename: '[path].br[query]',
      compressionOptions: { level: 11 },
      threshold: 10240,
      minRatio: 0.8,
    },
    enabled: true, 
    report: false,
    test: /\.(js|css|html|txt|xml|svg)$/,
    // Serving options
    middleware: {
      enabled: true,
      enabledStatic: true,
      encodingsPriority: ['br', 'gzip'],
    },
  },
  // ...
}
  • yarn build后,打开.nuxt > dist > client,看一下是否有.br或者.gz结尾,说明成功。

8.nuxt再次压缩包体积CompressionPlugin及optimization

  • 先安装compression-webpack-plugin
yarn add compression-webpack-plugin
  • 在nuxt.config.js中写入
const CompressionPlugin = require('compression-webpack-plugin');
module.exports = {
  // ...
  build: {
    plugins: [
      new CompressionPlugin({
        test: /\.js$|\.html$|\.css/, // 匹配文件名
        threshold: 10240, // 对超过10kb的数据进行压缩
        deleteOriginalAssets: false // 是否删除原文件
      })
    ],
    optimization: {
      minimize: true,
      splitChunks: {
        chunks: 'all',
        automaticNameDelimiter: '.',
        name: true,
        minSize: 10000,
        maxSize: 244000,
        cacheGroups: {
          vendor: {
            name: 'node_vendors',
            test: /[\\/]node_modules[\\/]/,
            chunks: 'all',
            maxSize: 244000
          },
          styles: {
            name: 'styles',
            test: /\.(css|vue)$/,
            chunks: 'all',
            enforce: true
          },
          commons: {
            test: /node_modules[\\/](vue|vue-loader|vue-router|vuex|vue-meta|core-js|@babel\/runtime|axios|webpack|setimmediate|timers-browserify|process|regenerator-runtime|cookie|js-cookie|is-buffer|dotprop|nuxt\.js)[\\/]/,
            chunks: 'all',
            priority: 10,
            name: true
          }
        }
      }
    },
  }
  // ...
}

经过以上操作后,基本上没有其他问题了,第一次接触webpack,应该是还可以优化的。

nuxt 性能优化提升访问速率毫秒级(catch)
qq_39579242的博客
12-28 2022
解决你的痛点
Nuxt 速度优化实战
小小小的骆驼的前端技术博客
05-18 4915
Nuxt 速度优化实战 背景是谷歌统计移动端网页加载速度在 10s 左右,所以优化一波,整体优化下来能优化到 7s 左右。主要有以下思路: 减少请求数和请求大小 资源延迟加载或者懒加载相关资源 验证 cdn 是否命中缓存 优化 dns 查询 优化缓存的设置 利用服务端渲染特性,提前请求数据 设置资源域名和主站域名不同以减少资源请求 cookie 加速请求 prefetch, preload, preconnect 下面将详细介绍具体的分析过程 1. 减少请求数和请求大小 引用官方文档 Nuxt.js
Nuxt3打包后页面源代码有大量内联style的解决办法
weixin_47834187的博客
08-16 187
【代码】Nuxt3打包后页面源代码有大量内联style的解决办法。
Nuxt实现的SSR页面性能优化的进一步探索与实践
大转转FE
05-22 5956
作者 | 王金录前言本文之前,先简单介绍以下几个概念:SSR指服务端渲染,即页面是通过服务端渲染生成后返回给客户端的,SSR主要为了提高页面加载速度,改善用户体验,也可用...
Nuxt 2 项目性能优化实践
weixin_43850368的博客
01-24 1292
本文探讨了在 Nuxt 2 项目中进行性能优化的实践方法。通过细致的分析和调整,提高了项目的加载速度和用户体验。涉及的优化手段包括图片懒加载、CDN 加速、资源压缩以及 CSS 文件的优化。这些方法综合应用,为项目带来了明显的性能提升。文章旨在分享实际经验,帮助开发者更好地优化他们的 Nuxt 2 项目。
nuxt 性能优化——服务端缓存的实现
weixin_44284981的博客
12-08 4007
何为服务端缓存
Nuxt2.X-优化:快速启动nuxt2.x项目 / 38.61s 优化到 15.84s / shelljs + inquirer + extendRoutes
snowball的博客
12-06 1599
使用const关键字声明一个名为inquirer的常量,并在变量声明语句中使用了require()函数,这个函数用来引入Node.js模块并返回对应模块的对象。在这里,require('inquirer')返回了inquirer模块的对象,使得我们可以在代码中使用它提供的API。nuxt extendRoutes是Nuxt.js中用于扩展路由的方法,可以在nuxt.config.js文件中配置。在启动项目的过程中,我们希望可以做一些工作,加快项目启动速度。这样只启动了要启动的目录,启动速度就会提升,
nuxt.js服务端渲染项目性能优化总结
qq_45272329的博客
08-15 1564
众所周知,Vue作为前端开发的三大框架扛把子之一,在国内众多小微厂使用还是很多的,都知道Vue一般作为客户端渲染模式,在某些业务场景可能十分不友好,比如电商业务;为啥说不友好呢,因为Vue一般是使用客户端渲染,数据都是通过Ajax请求回来的,搜索引擎无法抓取到动态的内容,所以要用到服务端渲染,服务端有多种实现方式,Vue官方也自带SSR解决方案,由于项目前端使用的是Nuxt实现的SSR。...
Nuxt.js优化坑、进行CDN加速(axios/jQuery/swiper/vue-lazyload图片懒加载等进行cdn加载)、elementui进行按需加载
熟悉JS拼写的FE
06-14 4596
(亲测有效)服务端渲染nuxt对axios/jQuery/swiper/vue-lazyload启用cdn加速,elementUI进行按需导入 前言:在nuxt中做一些性能上的优化其实存在许多坑,尽管nuxt已经帮你做了许多事情, 下面是我慢慢捣鼓出来的,有问题的话望大佬指出 一 、打包开启打包分析 第一步,下载依赖webpack-bundle-analyzer npm i webpack-bundle-analyzer -D 第二步,在package.json中scripts中加一项配置 "
nuxt-build-optimisations:Nuxt.js模块可自动使构建速度更快:high_voltage:
03-04
nuxt构建优化 立即加快您的Nuxt.js v2构建时间。 为什么以及速度有多快? Nuxt.js速度很快,但受其webpack构建的限制,当您的应用增长时,它的运行速度会变慢。 Nuxt构建优化抽象了优化Nuxt.js应用程序的复杂性,因此任何人都可以立即加快构建速度,而无需学习Webpack。 重点主要放在开发构建上,因为优化更安全。 基准测试 发展历程: :snowman_without_snow: 冷启动速度提高2-5倍, :fire: 几乎即时的热启动(具有“风险”配置文件) 生产:根据配置文件,应略微提高性能。 特征 这些功能按其风险概况,在您的应用程序内引起问题的可能性分开。 安全的 开发:使用超快速js / ts :high_voltage: 开发:图像仅使用file-loader 使用webpack基准测试 实验性 开发:禁用 pollyfills 用替换 启用 webpack的 禁用不使用的Nuxt功能(布局,存储) 有风
imagemin-module:自动优化(压缩)Nuxt.js中使用的所有图像
05-06
@ nuxtjs / imagemin 自动优化(压缩)Nuxt.js中使用的所有图像 设置 将@nuxtjs/imagemin依赖项添加到您的项目中 yarn add --dev @nuxtjs/imagemin # or npm install --save-dev @nuxtjs/imagemin 添加@nuxtjs/imagemin到buildModules的部分nuxt.config.js export default { buildModules : [ // Simple usage '@nuxtjs/imagemin' , // With options [ '@nuxtjs/imagemin' , { /* module options */ } ] ] } :warning: 如果您使用的是Nuxt <v2.9 ,则必须将模块作为de
01-首屏优化.md
03-31
在单页面应用(SPA)中,路由懒加载可以用来优化首屏加载性能。通过将非首屏的代码拆分出来,在需要时才加载,可以显著减少初始加载的代码量。在Vue中可以利用`vue-router`的动态import功能实现懒加载,而在React中...
标题:提升Nuxt.js应用性能的利器——Multi-threaded Generate命令
gitblog_00026的博客
06-12 463
标题:提升Nuxt.js应用性能的利器——Multi-threaded Generate命令 nuxt-generate-clusterMulti-threaded generator command for nuxt.js项目地址:https://gitcode.com/gh_mirrors/nu/nuxt-generate-cluster 简介: 在现代Web开发中,静态文件生成是优化用户体...
优化nuxt打包文件过大,页面打开过慢
小小笨南瓜
08-26 3050
nuxt前端项目部署后,首页打开过慢,排查由于打包后文件过大,解决方法。
推荐文章:提升Nuxt应用加载速度的秘密武器 —— nuxt-compress
最新发布
gitblog_00055的博客
09-09 834
推荐文章:提升Nuxt应用加载速度的秘密武器 —— nuxt-compress nuxt-compressA simple static asset compression module for Nuxt that runs Gzip and Brotli compression during the build process项目地址:https://gitcode.com/gh_mirror...
使用Nuxt.js构建SSR前端应用:优化SEO和提升性能
sybh的博客
07-31 457
Nuxt.js是一个基于Vue.js的SSR框架,它通过服务器端渲染(SSR)来生成静态HTML页面,提高SEO和首屏加载性能。Nuxt.js支持自动代码拆分、服务端渲染和静态页面生成,使得我们可以更方便地构建出高性能的前端应用。
nuxt.js页面加载优化
10-09
Nuxt.js是一个基于Vue.js的服务端渲染框架,通过优化页面加载可以提高网站的性能和用户体验。以下是一些Nuxt.js页面加载优化的方法: 1. 使用异步数据:在nuxt.config.js文件中,可以通过asyncData方法来获取页面所需的异步数据,这样可以在服务器端渲染时获取数据,减少客户端请求次数,提高页面加载速度。 2. 代码拆分:Nuxt.js支持代码拆分,可以将不同页面的代码拆分成多个小块,只在需要时加载。这样可以减少首次加载的文件大小,加快页面渲染速度。 3. 图片优化优化图片大小和格式,可以通过使用现代的图片格式(如WebP)和压缩图片来减小文件大小。同时,也可以使用图片懒加载和基于视口的延迟加载,只在图片进入可视区域时进行加载。 4. CDN加速:使用内容分发网络(CDN)来加速静态资源的传输,可以将静态文件(如CSS、JavaScript和图片)缓存到CDN节点,减少请求延迟,提高页面加载速度。 5. 资源预加载:使用Nuxt.js提供的<client-only>组件或者@nuxtjs/prerender-spa-plugin插件来实现资源的预加载,可以在首次访问时提前加载页面所需的资源,加快后续页面的加载速度。 6. 缓存策略:使用合适的缓存策略,将一些不经常变动的页面或者组件缓存到本地,可以减少服务器压力和网络请求次数,提高页面加载速度
写文章

热门文章

  • Nuxt速度优化、性能优化、加载优化、首页加载优化、白屏优化、打包优化集合 9784
  • vue改造textarea多行文本框样式 4494
  • vue nuxt环境配置,配置env环境 配置cross-env 4165
  • 接上一篇,完整版:nuxt封装axios、封装request请求、封装接口、nuxt配置proxy代理、nuxt的fetch调用接口方法 4040
  • docker内存不够无法启动容器。Exited (1) 14 seconds ago,新增Swap虚拟内存分区 2939

分类专栏

  • nuxt 2篇
  • mavon-editor 1篇
  • vue 7篇
  • 服务器 3篇
  • docker 3篇
  • linux服务器 3篇
  • vant 2篇
  • vant-picker 1篇
  • 多选 1篇
  • js
  • css 2篇
  • textarea 1篇

最新评论

  • Nuxt速度优化、性能优化、加载优化、首页加载优化、白屏优化、打包优化集合

    M ? A: nuxt-precompress已经用不了了,打包会报错

  • 接上一篇,完整版:nuxt封装axios、封装request请求、封装接口、nuxt配置proxy代理、nuxt的fetch调用接口方法

    无敌敏姐姐: 你好,请问api/baseUrl里面的内容是什么?

  • vue、nuxt的mavon-editor富文本的使用及添加代码块高亮样式、代码块行数、一键复制代码功能

    u010515502: nuxt从服务端取数据时,执行你demo中的init方法,提示this.codes = document.querySelectorAll("pre code"); ReferenceError: document is not defined 服务也断了,有好的解决办法吗

  • Nuxt速度优化、性能优化、加载优化、首页加载优化、白屏优化、打包优化集合

    weixin_45685148: 求问楼主,我安装了最后一个,运行起来报 Cannot import module '@nuxt/builder' ,求问怎么解决

  • Nuxt速度优化、性能优化、加载优化、首页加载优化、白屏优化、打包优化集合

    唐十八_wei: 楼主,第一个那个压缩比较是怎么弄的,能出下教程吗

大家在看

  • 动态内存管理 1035
  • 基于微信小程序的美食外卖管理系统
  • D15【python接口自动化学习】-python基础之内置数据类型 1
  • 【ICLR 2025】详细解读字节跳动视频生成论文 CyberHost: Taming Audio-driven Avatar Diffusion Model with Region Codebook
  • ARPGDemo第二阶段

最新文章

  • vue、nuxt的mavon-editor富文本的使用及添加代码块高亮样式、代码块行数、一键复制代码功能
  • centos服务器详细安装docker及配置、部署,包括docker部署nuxt ssr服务端渲染、springboot jar包、mysql、nginx
  • (通俗易懂)搞懂nginx正向代理、反向代理、负载均衡、动静分离,如何配置nginx.conf文件
2022年11篇

目录

目录

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

PHP网站源码网站优化还有价值吗营口网站的优化茌平网站优化哪家强长春网站安全优化郑州五金行业网站优化推广有用吗富裕县网站seo优化排名网站优化推广外包案例河津网站优化贵吗织梦网站url优化唐山效果好的网站优化哪家专业网站推广优化报价沙井网站优化哪家强小吃加盟网站优化运营医疗网站关键词优化甘肃seo优化网站鹤壁seo网站优化网站的关键词排名优化软件云浮网站优化热线怎么优化网站的关键词商丘百度网站优化推荐服务好的机械行业网站优化平台运用ia优化网站的好处有哪些苏州网站搜索优化企业南通网站优化哪家专业邯郸家具行业网站优化推广怎么样淮南搜狗网站优化龙岗区做网站优化江门照明网站seo优化浙江综合网站优化产品介绍东莞企业网站优化怎么做歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化