从零开始学习React——(十六):利用React生命周期优化组件

2023-11-07

通过上一节,对于React生命周期有了新认识,如何利用它来提高组件的性能呢?本节将会抛砖引玉讲解一个小例子。为了代码的清晰,可以删除上一节一些无关的生命周期函数代码。

1. ChildItem.js存在性能问题

那就是:子组件ChildItem.js频繁无用渲染render

很多情况下会忽略这个问题,但是软件的卡顿是一点点产生的,所以必须要减少性能消耗。

解决方式

直接在ChildItem.js中加入如下代码

	shouldCompnentUpdate() {
        return false
    }

这个时候回浏览器查看,问题已经没有了。但是这样做太暴力了。如果真实项目中需要改变值和属性值,达到渲染就没办法了。所以可以更优雅一点,采用如下方式:

shouldComponentUpdate 有两个参数:

  • nextProps:变化后的属性
  • nextState:变化后的状态
	shouldCompnentUpdate(nextProps, nextState) {
        if (nextProps.content !== this.props.content) {
            return false
        } else {
            return true
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从零开始学习React——(十六):利用React生命周期优化组件 的相关文章

随机推荐

  • 【TA-霜狼_may-《百人计划》】美术2.7 Metallic 与 Speculer流程

    TA 霜狼 may 百人计划 美术2 7 Metallic 与 Speculer流程 TOC TA 霜狼 may 百人计划 美术2 7 Metallic 与 Speculer流程 2 7 1 概念 2 7 2 两种流程 通用贴图 2 7 3
  • Sass 条件语句

    本节我们来学习 Sass 中的条件语句 可以使用 if 指令来判断条件表达式的值 然后控制输出 Sass 中的 if else 等指令和 JS 中的 if else 类似 if 指令 当 if 指令后面的表达式返回值为 true 时 输出花
  • 使用Arduino开发ESP32(19):获取网络时间

    文章目录 目的 基础说明 示例演示 额外说明 网络时间服务器 struct tm结构体与格式化输出 time t 和 time 总结 目的 时间是软硬件系统或设备中比较重要的东西 特别是需要和外部进行交互时就更加需要用到有个统一的时间了 目
  • java web前端面试题_web前端笔试试题(答案)

    一 填空题 每空1分 共70分 1 JS中的数据类型有哪些 string number undefined null boolean Object Array Function 3分 2 JS中强制类型转换为number类型的方法有 par
  • 西安现场打铁记

    打铁游记 Day1 去寺庙烧了烧香拜了拜佛 去了去毒 然后在热身赛快速猜对 直接过了A B题暴力模拟一下100多行代码也是过了 最后80多名 感觉不错 美滋滋 Day2 运气都用在的昨天的热身赛 今天2发才过了B 对于F题没敢去猜 3个小时
  • lightGBM介绍,以及xgboost与lightGBM的区别

    一 lightGBM 1 简介 lightGBM全称为light Gradient Boosting Machine 2017年经微软推出 是XGBoost的升级版 在大规模数据集上运行效率更高 GBDT在每一次迭代的时候 都需要遍历整个训
  • 解决虚拟机Linux获取不到ip或者登陆地址tty1获取不到ip方法

    查询不到ip虚拟机127 0 0 0 使用root登陆 us root 1 如果ifconfig命令无法使用或者查不到也可以 然后使用 dhclient v命令 1 然后ip addr 就可以了
  • 新创建多模块工程执行maven编译打包出现non-resolvable parent pom异常

    新创建多模块工程 在执行mvn clean install时抛出non resolvable parent pom 找不到父pom异常 FATAL Non resolvable parent POM for com alibaba unkn
  • 中文核心期刊与科技核心期刊区别?

    投稿前一定要先搞清楚各大期刊的区别 在我们发表论文之前 一定要先搞清楚各大期刊的区别进行精准投递 由于各期刊的等级分类不同 评选组织不同 评选范围和评选的领域不同 在选择的时候 一定要搞清楚各期刊的类别划分 不仅可以帮助我们精准定位自己的学
  • C++11智能指针之unique_ptr

    1 智能指针概念 智能指针是基于RAII机制实现的类 模板 具有指针的行为 重载了operator 与operator gt 操作符 可以 智能 地销毁其所指对象 C 11中有unique ptr shared ptr与weak ptr等智
  • 闲鱼项目玩法实战,月入破万实战指南!

    一些闲鱼的实操技巧玩法 做短期项目都同学一定收藏下 1 相同属性的商品上架1 2个即可不宜过多 每天上新1 2为宜 过多都会限流 2 商品名称根据用户可能会输入的关键词去拆分下逐个输入搜索框 如果有搜不到的 就是谐词汇 不断尝试更换 直到都
  • ESP32 S3-OLED显示小数函数

    ESP32 S3 ardino平台 配中景园7针0 96OLED屏显示小数 OLED网上的驱动代码一般厂商发货会提供驱动程序 但是显示小数很多都没有编写 这里编写了一段可显示任意位小数的代码 以正点原子代码为基础 需要显示有符号的小数程序稍
  • 云原生全栈体系(二)

    Kubernetes实战入门 第一章 Kubernetes基础概念 一 是什么 我们急需一个大规模容器编排系统 kubernetes具有以下特性 服务发现和负载均衡 Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器
  • 《自己动手设计数据库》第7章 设计表结构

    第7章 建立表结构 到此章为止 你手上应该有3张列表了 主题列表 经过评审的特征列表 又名初始字段列表 计算字段列表 定义初始表列表 要执行这一段内容 还需要第5章定义的任务目标 确定隐含主题 首先不去看主题列表 这里先去看初始字段列表 原
  • 执行程序时提示cuBLAS Error: cublasGemmStridedBatchedEx failed.

    操作步骤 问题现象 在使用Mindspore GPU跑程序的时候出现报错 CRITICAL KERNEL 1084 7f5e5ffff700 python3 2022 06 22 19 46 23 385 199 mindspore ccs
  • linux查看文件夹大小

    linux怎么查看文件夹多大 1 最简单的查看方法可以使用ls ll ls lh命令进行查看 当使用ls ll 会显示成字节大小 而ls lh会以KB MB等为单位进行显示 这样比较直观一些 2 通过命令du h max depth 1 可
  • Lesson 6.4 逻辑回归手动调参实验

    文章目录 一 数据准备与评估器构造 1 数据准备 2 构建机器学习流 二 评估器训练与过拟合实验 三 评估器的手动调参 在补充了一系列关于正则化的基础理论以及 sklearn 中逻辑回归评估器的参数解释之后 接下来 我们尝试借助 sklea
  • 知网CAJ直接PDF下载,并且autoBookMark添加书目

    知网能下PDF 谷歌浏览器下 You猴 安装这两个插件 CNKI 中国知网 PDF 全文下载 特制版 知网下载助手 安装所需要的文件链接 链接 https pan baidu com s 1sIKJnvuZE2P8r4HSETrWGQ 提取
  • Android TextEdit 文本框设置

    文本框类型设置 android inputType none 输入普通字符 android inputType text 输入普通字符 android inputType textCapCharacters 输入普通字符 android i
  • 从零开始学习React——(十六):利用React生命周期优化组件

    通过上一节 对于React生命周期有了新认识 如何利用它来提高组件的性能呢 本节将会抛砖引玉讲解一个小例子 为了代码的清晰 可以删除上一节一些无关的生命周期函数代码 1 ChildItem js存在性能问题 那就是 子组件ChildItem