React性能优化的手段有哪些?

news/2024/7/15 19:18:05 标签: react.js, javascript, 前端

React性能优化的手段有哪些?


1.使用纯函数
2.使用 React.memo 进行组件记忆(React.memo 是一个高阶组件),对于相同的输入,不重复执行;
3.如果是类组件,使用 shouldComponentUpdate(这是在重新渲染组件之前触发的其中一个生命周期事件)生命周期事件,可以利用此事件来决定何时需要重新渲染组件;
4.路由懒加载
5.使用 React Fragments 避免额外标记
6.不要使用内联函数定义(如果我们使用内联函数,则每次调用“render”函数时都会创建一个新的函数实例);
7.避免在Willxxx系列的生命周期中进行异步请求,操作dom等;
8.如果是类组件,事件函数在Constructor中绑定bind改变this指向;
9.避免使用内联样式属性;
10.优化 React 中的条件渲染;
11.不要在 render 方法中导出数据;
12.列表渲染的时候加key;
13.在函数组件中使用useCallback和useMemo来进行组件优化,依赖没有变化的话,不重复执行;
14.类组件中使用immutable对象;


http://www.niftyadmin.cn/n/81787.html

相关文章

pinia 实战IM----注册TIM-plugin插件

目录 初始化TIM实例 定义参数类型 扩展pinia插件 添加新的属性 添加新的选项 标注插件类型 为新的定义选项添加类型 为新的 state 添加类型 初始化pinia-TIM插件 扩展 pinia属性 与 选项 仓库中使用 pina中注册 初始化TIM实例 import TIM from tim-js-sdk; import…

【基础算法】差分

🌹作者:云小逸 📝个人主页:云小逸的主页 📝Github:云小逸的Github 🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前…

Android 开发布局笔记01 控件

Relative Layout 前端界面代码 <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"xmlns:tools&qu…

office Excel 加载加载项时出错 解决办法

Office加载项 是一种可以让用户在安装Office应用程序时自定义安装的功能。它可以让用户选择安装哪些Office应用程序&#xff0c;以及安装哪些功能。Office加载项可以让用户定制安装&#xff0c;以满足他们的特定需求。例如&#xff0c;用户可以选择安装Word、Excel、PowerPoin…

2023-02-19 最近公司和项目上技术与管理的反思

摘要: 最近在一个数据库细分领域做mysql列存储引擎, 在不同的侧面都有颇多感慨。而感慨更多的,除了技术,自然是在创业过程中的诸多波折。 作为一个秉持创业之心的和计划的人,自然是要对其中的诸多波澜做反思,毕竟成功的经验几乎不可复制,需要天时地利人和,知时知势知人…

【结构体版】通讯录

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前是C语言学习者 ✈️专栏&#xff1a;项目 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&#x…

Java基础-注解

1. 注解 1.1 注释和注解的区别&#xff1f; 共同点&#xff1a;都可以对程序进行解释说明。 不同点&#xff1a;注释&#xff0c;是给程序员看的。只在Java中有效。在class文件中不存在注释的。 ​ 当编译之后&#xff0c;会进行注释擦除。 ​ 注解&#xff0c;是给虚拟机…

Django框架之Django使用自带模板

Django使用自带模板 1 配置 在工程中创建模板目录templates。 在settings.py配置文件中修改TEMPLATES配置项的DIRS值&#xff1a; TEMPLATES [{BACKEND: django.template.backends.django.DjangoTemplates,DIRS: [os.path.join(BASE_DIR, templates)], # 此处修改APP_DIR…