关于前端性能优化,你能想到几点,越多越好?
一、javascript/css/html:
- 使用简洁精炼的语句可以更好的利用编译器优化,例如使用箭头函数;
- 合理的使用迭代器,遍历数据使用for循环有更小的消耗;
- 使用async/await 去执行一个异步操作;
- 及时清理不使用的定时器,不存在的dom引用,不再使用的全局变量和闭包等;
- 尽可能使用新的语法进行开发,例如es6+;
- 谨慎使用eval等消耗大的语句;
- 选择器不宜嵌套过深,最多不要超过三层,慎用标签选择器;
- 合理设计dom结构,多使用语义化的标签。
- 合并对css和dom的操作,减少回流重绘,合理利用GPU;
- script标签放在body,没有依赖关系的脚本可以添加async属性,使用defer属性进行兼容回退;
二、框架:
- 合理使用生命周期钩子函数和框架特性;
- React中的useMemo/useCallback对子组件的缓存作用,Vue中<keep-alive/>等组件;
- 提高组件化和代码复用的可能性;
- 多使用不可变数据,合理设计数据模型;
三、网络:
- 使用更快的http2协议进行传输;
- 利用CDN加速资源的下载;
- 开启gzip压缩;
- 使用更小的图片资源;
- 减少重定向的次数;
- a标签不要使用空的href属性;
- 利用好浏览器缓存;
四、工程化构建:
不同的打包工具具有不同的优化方式和特点,具体可以到官网查看,主要从以下方面入手:
- TreeShaking;
- CodeSplit;
五、其他:
- 使用懒加载、滚动加载、分页加载、虚拟列表等;
- 使用预加载pre-dns,pre-fetch等;
欢迎各位大佬留言补充
#是时候巩固基础了##写文章打卡聚集地#