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

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的对比过程,提升了性能

相关推荐
攀登的牵牛花4 分钟前
前端向架构突围系列 - 框架设计(七):反应式编程框架Flower的设计
前端·架构
佛系打工仔7 分钟前
K线绘制前言
前端
遇见~未来31 分钟前
JavaScript数组全解析:从本质到高级技巧
开发语言·前端·javascript
哈__31 分钟前
基础入门 React Native 鸿蒙跨平台开发:TabBar 底部导航栏
javascript·react native·react.js
lili-felicity33 分钟前
React Native 鸿蒙跨平台开发:Animated 实现鸿蒙端组件的左右滑动动画
javascript·react native·react.js
石像鬼₧魂石35 分钟前
80 端口(Web 服务)渗透测试完整总结(含踩坑 + 绕过 + 实战流程)
linux·运维·服务器·前端·网络·阿里云
哈__43 分钟前
React Native 鸿蒙跨平台开发:StatusBar 状态栏组件
javascript·react native·react.js
C_心欲无痕1 小时前
nginx - 核心概念
运维·前端·nginx
开开心心_Every1 小时前
安卓做菜APP:家常菜谱详细步骤无广简洁
服务器·前端·python·学习·edge·django·powerpoint
前端_Danny1 小时前
用 ECharts markLine 实现节假日标注
前端·信息可视化·echarts