误区以为父组件render一次,子组件会重新初始化
2024-09-01 22:51:17
初学react的时候我有一个误区,以为父组件render的一次,会将子组件先卸载,再将子组件重新初始化,事实证明不是。
这是对react生命周期函数不太清楚。
父子组件都初始化后,父组件再render一次,子组件实际上进行的是声明周期函数中的updation更新过程。
其实也很好理解这个生命周期函数,父组件执行更新过程一次,理所当然,子组件也执行一次,要不然你父组件给我的数据变了呢,我怎么知道,所以我也更新一下下。
那什么时候子组件会重新初始化呢,例如如下代码:你用父组件来控制子组件的显示和隐藏,将其隐藏的这种写法,就是将子组件给卸载了,再次显示,就会重新初始化。
当修改isShow为false的时候,子组件就直接进入卸载过程,执行componentWillUnmount函数后,就从dom中移除了。
{this.state.isShow && <SubComponent></SubComponent>}
再将isShow为true的时候, 此时子组件才是又初始化了一次,开始新的生命周期,进入初始化过程,接着是挂载过程。
最新文章
- python 数据类型 --- 集合
- SFDC中的DEBUG
- 用事实说话,成熟的ORM性能不是瓶颈,灵活性不是问题:EF5.0、PDF.NET5.0、Dapper原理分析与测试手记
- css实现背景颜色线性渐变
- 无法将 grub-efl-amd64-signed 软件包安装/target/ 中
- <;<;c 和指针 >;>; 部分笔记。
- Echarts双轴图的配置.
- rpm包安装
- vi常用命令集锦
- PHP-购物网站开发设计(二)
- Android上掌纹识别第一步:基于OpenCV的6种肤色分割 源码和效果图
- httpclient源码分析之MainClientExec
- angularJS 源码阅读之一:toDebugString
- Java工程师书单(初级、中级、高级)
- MyBatis注解select in参数
- 【Python】 文件和操作文件方法
- Winsock编程基础2(Winsock编程流程)
- 枚举进行位运算 枚举组合z
- $.contents().find设置的data在iframe子页面无法获取值
- ARMV8 datasheet学习笔记3:AArch64应用级体系结构之Synchronization and semapores