react 的生命周期函数中,当props改变时,会引发的后续 变化,rander()函数什么时候执行?

news/2025/11/24 15:30:59/文章来源:https://www.cnblogs.com/yuhuo123/p/19264354

一、当 props 改变时,组件会触发哪些生命周期?

以 class 组件 为例(函数组件用 Hooks 行为类似):

1. 父组件重新渲染 → 传给子组件的新 props 变化

父组件更新 → 子组件收到新的 props。

2. 子组件生命周期触发顺序(props 改变时)

如果使用的是 React 16.3+ 的新生命周期:

static getDerivedStateFromProps(nextProps, prevState)
  • 当 props 改变时首先执行

  • 是一个“纯函数”,不能访问 this

  • 可根据 nextProps 更新 state(不常用)

shouldComponentUpdate(nextProps, nextState)
  • 决定是否需要重新渲染

  • 返回 false → 阻止后续 render

  • PureComponent 在内部自动实现浅比较

render()
  • props 或 state 变化都会执行

  • 你必须明确:render 不等于真实 DOM 更新

getSnapshotBeforeUpdate(prevProps, prevState)
  • 用来在 DOM 更新前读取信息(例如滚动条位置)
componentDidUpdate(prevProps, prevState, snapshot)
  • DOM 已经更新

  • 可进行网络请求、操作 DOM、更新状态需慎重(避免死循环)

二、props 改变时 render() 会不会执行?

会执行!

只要以下任意条件成立,render() 一定执行:
  • props 发生变化

  • state 发生变化

  • 父组件重新 render(即使 props 没变)

只有一种情况 render 不执行:

shouldComponentUpdate 返回 false:

shouldComponentUpdate() {return false
}

或使用 PureComponent 但 props/state 没变化(浅比较)。

三、为什么 props 改变会执行 render?

因为 React 的核心思想是:

UI = f(state, props)

只要 props 或 state 改变,UI 就可能发生变化 → 需要调用 render() 生成新的 Virtual DOM

然后 React 会:

  • 对新旧 Virtual DOM 做 diff

  • 只更新变化的 DOM 节点(避免整体刷新)

这就是效率高的原因。

最简总结

props 改变 → 子组件严格的生命周期:
getDerivedStateFromProps
↓
shouldComponentUpdate
↓
render
↓
getSnapshotBeforeUpdate
↓
componentDidUpdate

props 改变时一定会执行 render(除非你拦截)

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

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

相关文章

银河麒麟服务器版exFat格式U盘

银河麒麟服务器版exFat格式U盘yum install fuse-exfat

17 年深耕互联网服务!广州天呈网络技术以营销网站建设、品牌网站建设、网站建设推广赋能企业增长

在 “互联网 +” 浪潮席卷各行各业的今天,专业的营销网站建设、品牌网站建设与网站建设推广服务,成为企业打通线上渠道、实现数字化转型的关键支撑。成立于 2009 年的广州天呈网络技术有限公司(天呈汇),深耕互联网…

全 IB 认证加持,十五年一贯制深耕!嘉兴国际学校标杆 —— 青鸟同文实验学校实力解读

在长三角教育一体化发展的浪潮中,嘉兴凭借深厚的文化底蕴与开放的城市姿态,成为国际化教育的重要阵地。嘉兴市青鸟同文实验学校,这所前身为 2016 年创办、2022 年正式更名的十五年一贯制学府,正以 “全 IB 认证” …

2025 年 11 月镀膜材料厂家权威推荐榜:真空镀膜材料,光学镀膜材料,装饰镀膜材料,高性能镀膜材料源头企业精选

2025 年 11 月镀膜材料厂家权威推荐榜:真空镀膜材料,光学镀膜材料,装饰镀膜材料,高性能镀膜材料源头企业精选 在当今科技飞速发展的时代,镀膜材料作为现代制造业的关键基础材料,其性能和质量直接影响着终端产品的…

想做一款健康app

这是一个初步的构思,先让AI来个设计稿看看 我们以HTML代码为基础,一起完成APP UI设计稿 我计划开发一个健康app,先从厨房开始,第一个功能:做一个家庭仓库管理功能,把厨房的食材、调料、米面等统统记录到系统,以…

2025年智能电缆订制厂家权威推荐榜单:防火电缆/控制电缆/低烟无卤电缆源头厂家精选

在电力传输与智能化系统日益复杂的今天,智能电缆订制厂家凭借其柔性生产体系与快速响应能力,正成为产业升级的重要支撑。 智能电缆作为电力传输与信号控制的核心载体,其定制化需求正随着产业升级而快速增长。根据行…

2025 年 11 月酿酒设备厂家权威推荐榜:蒸馏设备/白酒包装设备/蒸煮设备/发酵罐/储酒罐/封箱机,高效智能酿造系统全解析

2025 年 11 月酿酒设备厂家权威推荐榜:蒸馏设备/白酒包装设备/蒸煮设备/发酵罐/储酒罐/封箱机,高效智能酿造系统全解析 随着中国酒类产业的持续升级,酿酒设备行业正迎来智能化、高效化的转型浪潮。在 2025 年的市场…

2025 年 11 月码垛机厂家权威推荐榜:龙门/立柱/全自动/机器人码垛设备,高效智能与稳定耐用工业之选

2025 年 11 月码垛机厂家权威推荐榜:龙门/立柱/全自动/机器人码垛设备,高效智能与稳定耐用工业之选 随着工业自动化水平的不断提升,码垛机作为物流仓储和生产线上不可或缺的设备,其技术发展和市场应用日益受到关注…

java生成word-xdocreport

pom maven 引入<!-- doc start --><dependency> <groupId>fr.opensagres.xdocreport</groupId> <artifactId>fr.opensagres.xdocreport.core</artifactId> <versio…

SynchronizedList线程安全列表

using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks;public class SynchronizedList<T> {private readonly List<T> _list = new List<T>();p…

CLaunch设置自动开机启动的方法

CLaunch是一款非常好用的支持快速启动的软件。CLaunch设置自动开机启动的方法 方法1:(针对绿色运行CLaunch,也就是不点击setup安装的时候) 按【Windows +R】打开运行窗口,在输入框输入【shell:Common Startup】回…

2025 年 11 月灌装机厂家权威推荐榜:酱油灌装机/高精度灌装机,洗瓶机/多种异型瓶洗瓶机/酱油洗瓶机,封盖机/酱油封盖机,高效稳定与智能操控的行业优选方案

2025 年 11 月灌装机厂家权威推荐榜:酱油灌装机/高精度灌装机,洗瓶机/多种异型瓶洗瓶机/酱油洗瓶机,封盖机/酱油封盖机,高效稳定与智能操控的行业优选方案 随着食品饮料行业的快速发展,酱油、酒类等液态调味品及饮…

电池安全与召回危机

电池安全与召回危机:质量管理软件如何构筑“数字防火墙” 每一次自燃的火焰,不仅灼烧着消费者的信任,也在焚烧着车企的品牌与未来。在动力电池这个万亿赛道中,质量不再是成本,而是生存的底线。 引言 近半年来,国…

紧抓3个关键动作,驱动企业AI HR转型落地高效、优质

故事的开端源于一组人工智能软件服务企业Cognition AI的惊人数字:该公司仅以15名程序员作为核心生产力,在公司成立后的第21个月,企业估值达到102亿美元。 而之所以能以极小的组织规模创造出令人难以置信的效率和价值…

2025年钢带增强聚乙烯螺旋波纹管实力厂家权威推荐榜单:钢带波纹管/hdpe钢带波纹管/钢带双壁波纹管源头厂家精选

在市政工程与基础设施建设持续发展的2025年,钢带增强聚乙烯螺旋波纹管凭借其高环刚度、耐腐蚀和轻质易安装的优势,已成为排水管道的优选材料。 本文将基于企业的生产能力、技术实力、产品质量与市场应用等多维度评估…

求评

qaq单纯想收集别人对我的最后印象qwq

10道面试常考的C++面试题 - Sad

10道面试常考的C++面试题$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");1. 多态是怎么实现的?虚函数表了解吗?运行时多态通过虚函数表(vtable)实现 每个…

Oracle 11g 安装程序闪退无法运行问题解决

今日为一台新服务器安装Oracle 11G时安装程序一闪而过,无法运行,查看安装报错日志 “ C:\Users\Administrator\AppData\Local\Temp\1\OraInstall2025-11-24_02-49-27PM”如下: Using paramFile: E:\database11.2.0.…

2025年上海一对一辅导机构推荐:徐汇区、虹口区家教辅导机构深度测评榜单

在徐汇区的徐家汇、衡山路商圈,虹口区的北外滩、四川北路商圈,无论是云锦东方、嘉御庭等高档小区的家长,还是瑞虹新城、外滩豪景苑的家庭,都在为孩子寻找靠谱的小学、初中、高中一对一课外补习机构。数据显示,上海…

2025年上海一对一辅导机构推荐:杨浦区、闵行区家教辅导机构深度测评榜单

杨浦区五角场、江湾城商圈,闵行区莘庄、古美板块的家长们,在为孩子挑选小学、初中、高中课外补习机构时,常陷入“机构太多挑花眼”“价格虚高没效果”“通勤耗时费力”的困境。据上海教育行业白皮书显示,2024年杨浦…