vue 首屏优化的解决方案

本文介绍前端性能优化的五大策略,包括路由懒加载、利用webpack开启gzip压缩、后端nginx配置优化、修改uglifyOptions去除console以减小文件大小,以及如何查看文件大小变化。通过这些方法,可以显著提升前端应用的加载速度和用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.路由懒加载
const workCircle = r => require.ensure([], () => r(require(’@/module/work-circle/Index’)), ‘workCircle’)
const workCircleList = r => require.ensure([], () => r(require(’@/module/work-circle/page/List’)), ‘workCircleList’)
2.webpack开启gzip压缩

这里需要配合Nginx服务器,Nginx开启gzip
config/index.js中

npm install --save-dev compression-webpack-plugin

版本:“compression-webpack-plugin”: “^1.1.12”, package.json文件在这里插入图片描述
build/webpack.prod.conf.js中
使用vue-cli构建项目时,默认会有这段代码在这里插入图片描述
if (config.build.productionGzip) {
const CompressionWebpackPlugin = require(‘compression-webpack-plugin’)

webpackConfig.plugins.push(
    new CompressionWebpackPlugin({
        asset: '[path].gz[query]',
        algorithm: 'gzip',
        test: new RegExp(
            '\\.(' +
            config.build.productionGzipExtensions.join('|') +
            ')$'
        ),
        threshold: 10240,
        minRatio: 0.8
    })
)

}
3后端nginx配置
在这里插入图片描述
gzip on; gzip_types text/plain application/x-javascript application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;

4:修改uglifyOptions去除console来减少文件大小
webpack生产环境中
在webpack.prod.conf文件吧下面替换成上面的
new webpack.optimize.UglifyJsPlugin({
sourceMap: config.build.productionSourceMap,
// 使用外部引入的新版本的js压缩工具
parallel: true,
uglifyOptions: {
ie8: false, // 启用IE8支持
ecma: 6, // 支持的ECMAScript的版本(5,6,7或8)。影响parse,compress&& output选项
warnings: false, // 显示警告
mangle: true, // debug false
output: {
comments: false,
beautify: false, // debug true
},
compress: {
// 在UglifyJs删除没有用到的代码时不输出警告
warnings: false,
// 删除所有的 console 语句
// 还可以兼容ie浏览器
drop_console: true,
// 内嵌定义了但是只用到一次的变量
collapse_vars: true,
// 提取出出现多次但是没有定义成变量去引用的静态值
reduce_vars: true
}
}
}),
// new webpack.optimize.UglifyJsPlugin({
// compress: {
// warnings: false
// },
// sourceMap: true
// }),
5 查看文件大小的变化(不属于优化)
在这里插入图片描述
if (config.build.bundleAnalyzerReport) {
var BundleAnalyzerPlugin = require(‘webpack-bundle-analyzer’).BundleAnalyzerPlugin
webpackConfig.plugins.push(new BundleAnalyzerPlugin())
}
地址:https://www.jianshu.com/p/27111a68709f

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值