React面试题:React.Component和React.PureComponent的区别?

回答思路:什么是PureComponent-->Component更新过程-->PureComponent更新过程-->PureComponent的优点

什么是PureComponent:pure:纯净的,即为纯组件,可以用来优化React程序,减少render函数执行的次数,提高组件的性能。

Component更新过程:在react中当props或state发生改变时,会执行render函数更新页面,若不想更新页面,可以通过在shouldComponentUpdate生命周期函数中执行return false来阻止页面的更新(默认返回true),从而减少不必要的render执行。

PureComponent更新过程:自动执行shouldComponentUpdate,执行该函数是进行浅比较,如果在页面中使用了引用类型的数据,当执行该函数更新时只会比较是不是同一地址,而不会比较这个地址中的数据是否一致,浅比较会忽略属性或状态的突变,如果只改变引用数据类型的值,则不会执行render函数,如果需要重新渲染则需另外开辟空间引用数据,所以pureComponent一般会用在一些纯展示组件上

PureComponent的优点:当组件更新时,若props或state都没有改变,render函数就不会触发,省去了DOM的对比过程,提升了性能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/232706.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

想要将numpyarray转换成Image出错,ValueError: Could not save to PNG for display

问题再现 cams_H 是一个形状为torch.size([1, 7, 7, 3])的tensor, 它经历了以下语句: cams_H_np cams_H.numpy() cams_H_img Image.fromarray(cams_H_np[0, :, :, 0]) cams_H_img报错了: ---------------------------------------------…

如何安装运行Wagtail并结合cpolar内网穿透实现公网访问网站界面

文章目录 前言1. 安装并运行Wagtail1.1 创建并激活虚拟环境 2. 安装cpolar内网穿透工具3. 实现Wagtail公网访问4. 固定的Wagtail公网地址 前言 Wagtail是一个用Python编写的开源CMS,建立在Django Web框架上。Wagtail 是一个基于 Django 的开源内容管理系统&#xf…

pycharm或anaconda安装第三方库的办法

https://pypi.tuna.tsinghua.edu.cn/simple/ ctrlF 查找seaborn 我是直接去镜像网站或官方网站找要下载安装的包,手动下载下来,再手动安装会比较快。 输入 pip install D:\Downloads\seaborn-0.9.0-py3-none-any.whl 回车,就很酸爽&#xff…

2024年软考报名条件有哪些?有学历限制吗?

不少考生开始准备报名2024年软件水平考试,那么报名软考有没有学历、专业以及工作经验等方面的限制呢?今天小编就给大家详细来介绍一下。 软考报名条件如下: 1、凡遵守中华人民共和国宪法和各项法律,恪守职业道德,具有一定计算机…

vscode设置保存时代码格式自动对齐

1.点击左下角扩展图标→点击“设置” 2.工作区→文本编辑器→格式化→format on save 打钩 3.看看效果: 加一个数据gender,跟前面的msg、age不对齐 CtrlS保存后,自动对齐了

Linux服务器已有硬盘扩容

1、进入服务器使用命令“lsblk”,可以看到vda2实际上是有1.2T空间的,但只使用了400G空间。 lsblk 2、 查看并新建磁盘分区 fdisk /dev/vda 输入“n”新建一个分区, “Select”输入“p”表示新建一个主分区, “Partition number”…

openwrt docker nginx 站点搭建

应为家里一直是 openwrt 软路由,这样以来也不用 重新买服务器了,就直接在 openwrt 上面跑个 nginx就行了。把自己的一些东西就可以放上面了。资源再利用哈哈; 先 ssh 连接上 openwrt :我这里的 openwrt 最近刚更新的固件&#xff…

HNU-数据库系统-实验1-数据定义/数据操纵

数据库系统 课程实验1数据定义/数据操纵 计科210X 甘晴void 202108010XXX 目录 文章目录 数据库系统 课程实验1<br>数据定义/数据操纵实验目的实验样例实验环境实验内容1.1 数据库定义1&#xff09;实验内容与要求2&#xff09;实验重难点3&#xff09;实验基础知识①模…

fastjson1.2.24 反序列化漏洞(CVE-2017-18349)分析

FastJson在< 1.2.24 版本中存在反序列化漏洞&#xff0c;主要原因FastJson支持的两个特性&#xff1a; fastjson反序列化时&#xff0c;JSON字符串中的type字段&#xff0c;用来表明指定反序列化的目标恶意对象类。fastjson反序列化时&#xff0c;字符串时会自动调用恶意对…

SpringBoot 源码解析4:事件监听器

SpringBoot 源码解析4&#xff1a;事件监听器 1. 初始化监听器2. 创建事件发布器 SpringApplicationRunListeners3. 事件分发流程3.1 SimpleApplicationEventMulticaster#multicastEvent3.2 获取监听器 AbstractApplicationEventMulticaster#getApplicationListeners3.3 Abstra…

BEFF引言与概述

BeEF的简介在现代互联网时代&#xff0c;Web浏览器已成为人们日常生活中不可或缺的工具。然而&#xff0c;正是因为其广泛的使用和复杂的功能&#xff0c;Web浏览器成为了黑客们攻击的主要目标之一。为了利用Web浏览器中的漏洞和弱点&#xff0c;渗透测试人员和黑客们开发了一些…

pip使用

python37 -m pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple 查看已安装的库 python37 -m pip list

【数据结构】使用循环链表结构实现约瑟夫环问题

目录 1.循环链表的定义 2.约瑟夫环问题 3.创建循环链表 4.删除节点操作 5.打印所有节点 6.实现约瑟夫环问题的完整程序代码 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所帮助。 &#x1f4a1;本文由Filotimo_…

手动配置 kafka 用户密码,认证方式等的方式

场景 部分场景会指定使用某一kafka 来提高安全性&#xff0c;这里就不得不使用用户密码认证方式等来控制 方法示例 // 手动加载配置信息private Map<String, Object> consumerConfigs() {Map<String, Object> props new HashMap<>();props.put(ConsumerCo…

自动化测试知识总结(含资料)

一、自动化测试 自动化测试的定义&#xff1a;使用一种自动化测试工具来验证各种软件测试的需求&#xff0c;它包括测试活动的管理与实施、测试脚本的开发与执行。 自动化测试只是测试工作的一部分&#xff0c;是对手工测试的一种补充; 自动化测试绝不能代替手工测试;多数情况…

jsp学生选课系统

介绍 一款简单的Servlet mysql jsp的选课系统&#xff0c;主要有三大模块&#xff0c;管理员模块&#xff0c;教师模块&#xff0c;学生模块。管理员模块主要功能模块有系统管理&#xff0c;课程管理&#xff0c;教师管理&#xff0c;课表管理&#xff0c;学生管理&#xff…

ADB:获取坐标

命令&#xff1a; adb shell getevent | grep -e "0035" -e "0036" adb shell getevent -l | grep -e "0035" -e "0036" 这一条正确&#xff0c;但是&#xff0c;grep给过滤了&#xff0c;导致没有输出 getevent -c 10 //输出10条信息…

大模型 RLHF 实战!【OpenAI独家绝技RLHF!RLHF的替代算法DPO!Claude 暗黑科技 RAIHF!】

大模型 RLHF 实战 大模型 RLHF 实战RLHF&#xff1a;OpenAI独家绝技RLHF 的问题 DPO 直接偏好优化算法&#xff1a;RLHF的替代算法公式 1 - 4&#xff1a;KL散度下奖励的最大化目标使用 DPO 微调 Llama 2 RAIHF 大模型 RLHF 实战 RLHF&#xff08;基于人类反馈的强化学习&#…

gradio

gradio启动cmd并尝试kill import gradio as gr import subprocessall_pid []def get_all_pid():return str(all_pid)def train_0():proc subprocess.Popen([python, a.py], cwdpy_folder_path)all_pid.append(proc.pid)def train_1():proc subprocess.Popen([python, b.py]…

Springboot管理系统数据权限过滤(三)——0业务入侵实现部门数据权限过滤

上一章&#xff0c;讲解了SQL拦截器的&#xff0c;做了一个简单的SQL改造。本章要实现&#xff1a; 仅对指定的service方法内执行的SQL进行处理&#xff1b;完成对部门权限的过滤&#xff1b; 以下简单用一个图说明了整个处理过程&#xff0c;红色框住的部分&#xff0c;就是…