1.类组件少用,因为每次都会创建实例,
2.类组件中的事件函数最好使用箭头函数,不要使用bind改变this指向,改变this指向也会重新创建实例
3.给子组件传值的时候不要直接使用内联函数和内联style,引用类型地址不同每次都不相等
4.Memo可以和puerComponent可以浅层判断是否需要重新render子组件,但是自定义事件和对象属性不行,
5.所以可以使用useCallBack来缓存函数
6.useMemo可以缓存一个计算结果,当作属性使用,相当于vue中的计算属性,里面可进行大量计算,只要依赖数据不变不会重新渲染,有缓存
7.Fragments(jsx只能有一个父标签,如果用div会加深嵌套层数,
8.useContext也可以减少嵌套层数,之前使用的是Consumer,现在只需要从useContext中解构Provide传的值可以直接使用
9.lazy和Suspense组件可以进行懒加载,加快首屏加载速度
10.useRef可以声明一个变量,此变量改变值的时候组件不会重新render,如果有不需要显示到页面上的值可以使用,比如定时器取名(没响应式)
11.immutable是一个持久化数据结构,每次对他改变会重新生成一个新的immutable对象,但是他会判断那个节点改变,然后只更新这个节点和受影响的节点,其他的直接复用
12.组件卸载时关闭定时器,清楚一些实例对象
1.减少全局变量,js垃圾回收机制难以判断并回收
2.css是逆向解析的,从里到外,嵌套层数不要过高、
3.图片懒加载,预加载(占位)
4.不要用图片,多用字体图标
5.针对一些行为进行节流和防抖,防止频繁向服务器发请求。
6.减少回流和重绘操作
7.script标签中的defer和async属性可以异步加载js,只适用于外联脚本(src)
8.react-activation包中的AliveScope标签可以实现页面缓存,相当于vue中的keep -alive,但是这样操作就不能用路由懒加载了,在路由表里要加ID
前端性能优化(react)
最新推荐文章于 2024-06-13 16:44:35 发布