前端优化需要考虑的点以及注意事项

本文探讨了Webpack在实际项目中的关键考虑因素,包括性能警告处理、splitChunks分包利用缓存、runtimechunk策略、cacheGroups抽离第三方库和公共代码,以及编码技巧如Promise.all并发请求、按需加载和图片CDN部署。同时,针对服务端,涉及强缓存和协商缓存,分析工具如webpack-bundle-analyzer和Lighthouse也被提及。

webpack需要考虑的问题(除了开箱即用部分)

  1. performance性能警告提示
  2. splitChunks分包(合理利用浏览器缓存机制):
  • runtimechunk运行时分包,比如app.vue依赖a.vue,b.vue,如果只是a.vue变化那么只需要a.vue相对应的chunk的hash值变化,而不是app.vue的hash一起跟随变
  • cacheGroups:(1)抽离依赖第三方库(node_modules文件夹下)chunkvendors.js,利用dllplugin可加速打包速度,如果第三方较大那么最好是需要cdn方式引入。externals 配置可以剥离第三方库不打进chunkvendors.js(2)抽离公共引入超过2及以上的chunkcommon.js
  1. tree-shaking 按需加载配置sideeffect
  2. babel-loader 部分加快打包速度(1)需要考虑babelcatch把经过转译后的缓存起来(2)配置不需要转译的exclude和需要转译的include文件夹路径
  3. 当我们引用模块时,如果出现import ‘zepto’这样的依赖引入方式,webpack会默认从当前目录往上逐层查找是否有node_modules,然后在node_modules下查找是否存在指定依赖

编码方式上需要考虑的问题

  1. 初始化页面如果多个接口请求可利用promise.all并发请求
  2. 如果需要请求大量本地静态数据或者依赖库,需要import(**).then()方式按需加载,这样目的会打包出相应的chunk.js,只有当页面触发某个事件才会把相应的chunk.js引入进来,就像路由异步加载组件一样
  3. 页面如果有动态控制div块内内容,需要设置div宽高,防止重回和回流影响浏览器的开销
  4. 比较大的图片可部署cdn
  5. 特定业务场景下,节流和防抖,适用于频繁操作回调之类的
  6. 预加载,懒加载
  7. webwoker开启多进程

服务端需要考虑的问题

  1. 强缓存
  2. 协商缓存

分析需要优化的工具

  1. webpack插件 webpack-bundle-analyzer
  2. 浏览器的Lighthouse,performance

~暂时想到的这么多,后续想到的再补充~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值