React 组件层次结构中的 componentDidMount 顺序

2023-11-23

我有一个具有以下结构的 React 应用程序:

成分A由...组成B and C

当组件B称其为componentDidMount方法,是不是所有元件都安装完成了?

或者换句话说React 会起火吗componentDidMount树中的所有组件都安装完毕后?

或例如成分B componentDidMount组件时被调用A安装?


根据文档,第一次挂载时生命周期方法的顺序如下:

  1. 构造函数()
  2. 组件WillMount()
  3. render()
  4. 组件DidMount()

假设您有这个组件:

class A extends Component {
  render() {
    return (
      <div>
        <B />
        <C />
      </div>
    )
  }
}

When A安装完毕后,它会开火componentDidMount()。那将会发生渲染后。由于 B 和 C 在 A 之前不存在render()所谓,A的挂载完成需要B和C完成各自的生命周期。作为componentDidMount()将在 B 和 C 安装后触发。作为componentWillMount()在 A 之前触发render(),因此它也会在安装 B 或 C 之前触发

UPDATE

从 React 16.3 开始,componentWillMount开始弃用过程,同时componentWillUpdate and componentWillReceiveProps。上面的示例在任何 16.x 版本的 React 中都可以正常工作,但会收到弃用警告。有一些新方法取代了已弃用的方法,并且具有自己的生命周期。有关他们的更多信息,请参见组件 API 文档。这里有一个备忘单图为了新的生命周期

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React 组件层次结构中的 componentDidMount 顺序 的相关文章

随机推荐

  • 具有多个参数的 MVC4 Web API Rest 接口

    我有一个名为 LoginController 的控制器 其 Get 方法的签名为 public string Get string Key string Code string UserID string Password 我希望能够通过类
  • Github Actions 有模板吗

    由于我的 Github Actions 中有重复的步骤 我想创建一个模板 让我们举个例子 name ci on push jobs build and test strategy matrix os ubuntu latest runs o
  • 如何多次使用相同的参数?

    我知道关于sprintf 但是如何多次使用相同的参数呢 如果我使用以下代码 则会收到有关使用少量参数的错误 sprintf blabla s 11111 s test 我想更换 s with test twice Use the 编号占位符
  • Javascript 排序“不稳定” - 我该如何解决这个问题?

    根据MDN spec Javascript sort 函数 不稳定 不维护相同元素的输入顺序 讽刺的是 Firefox 目前似乎还没有实现这一点 但 Chrome 似乎实现了 这给我留下了一些问题 我有一组元素要排序 一旦排序 我想将它们标
  • 如何将 3 个 UIButtons 对齐到 UITableCellView 的中心?

    我怎样才能对齐3UIButtons 到 a 的中心UITableCellView 例如说我有 3UIButtons 的标题 Email Phone Skype 其中一项或多项是可能的UIButtons 被隐藏 例如 如果电话UIButton
  • 基于 Zend_Framework 的应用程序示例 [已关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 您知道有哪些基于 Zend
  • Python 中的对象引用是什么?

    一本Python入门教科书对 对象引用 的定义如下 但我不明白 对象引用只不过是对象身份 存储对象的内存地址 的具体表示 教科书尝试通过使用箭头将对象引用显示为来自变量的某种关系来说明这一点a到一个物体1234在赋值语句中a 1234 从我
  • 如何对同步代码进行单元测试

    我是 Java 和 junit 的新手 我有以下一段代码想要测试 如果您能发送有关测试它的最佳方法的想法 我将不胜感激 基本上 以下代码是关于从集群中选举领导者的 领导者持有共享缓存上的锁 如果领导者以某种方式失去了缓存上的锁 则领导者的服
  • 警告:GDB:无法设置控制终端:不允许操作

    当我尝试使用 gdb 和 Netbeans IDE 调试 C C 程序时 出现此错误 此问题的标题 有谁知道这意味着什么以及如何摆脱警告 尽管有警告 我仍然可以进行调试 但我仍然想让警告消失 相关详情 操作系统 Ubuntu 9 10 gd
  • 使用对象标签将 PDF 文件嵌入到 html 中

    我正在将 pdf 文档嵌入到我的 html 代码中 为此我写了这段代码
  • Mongoose 异步模式验证不起作用

    我有以下代码来验证我的 时区 字段 orgSchema path timezone validate function value return Timezone findOne id value id function err timez
  • 将本地文件从客户端加载到dask分布式集群上

    这是一个初学者问题 但我无法找到相关的答案 基本上 我的有关 7GB 的数据位于我的本地计算机上 我有在本地网络上运行的分布式集群 我怎样才能把这个文件放到集群上 通常的 dd read csv 或 read parquet 会失败 因为工
  • 使用或不使用 dict.keys() 访问 Python 字典键

    通常我访问dict键使用keys method d a 1 b 2 c 3 for k in d keys print k 但有时我会看到这样的代码 for k in d print k 这段代码正确吗 安全的 回答你明确的问题 是的 它是
  • 如何在 Android 中的标签栏中居中对齐文本

    我只想在选项卡栏中放置文本 而不放置图像 我想将文本在选项卡栏中水平和垂直居中 正好在中心 如果有人仍然对简单的解决方案感兴趣而不创建自己的布局和样式 对每个添加的选项卡使用 android widget TabHost TabSpec s
  • 在 Grails 中创建管理部分的最佳方法

    Hy 我想知道在 Grails 应用程序中创建管理 后端 部分的最佳方法是什么 我想在 Grails 的 controllers 文件夹中创建一个 Admin 文件夹来放置我所有的管理控制器 但是我是否必须为每个管理控制器手动创建 URL
  • 如何使用 com.google.gwt.user.datepicker.client.DateBox 限制可用日期范围

    我需要限制什么Dates用户可以从com google gwt user datepicker client DateBox 我似乎不知道如何限制最小Date所以他们无法选择过去的日期 如果我不能这样做com google gwt user
  • 如何在 Swift 中为随机数生成器播种?

    我的应用程序使用随机数 我想为随机数生成器提供种子 以便每次都不会相同 我该怎么做呢 EDIT 我应该给 srand 提供什么参数来用当前时间为随机生成器提供种子 这有效 let time UInt32 NSDate timeInterva
  • Spring Boot - 仅在属性启用时才加载 bean

    我有一个Spring Boot应用程序具有不同的子模块 其中还包含弹簧组件 在主 Web 模块中 我使用了子模块中 70 的 Bean 属性组 指向 bean 是否启用取决于 application yml 属性 首先 我想创建 Aspec
  • Flutter 应用程序体积太大

    我在使用 java 开发 Android 应用程序方面拥有丰富的经验 最近我开始了解flutter 所以 我尝试基于官方的flutter创建一个简单的android应用程序tutorial 但令人惊讶的是 调试应用程序大小为 25MB 而发
  • React 组件层次结构中的 componentDidMount 顺序

    我有一个具有以下结构的 React 应用程序 成分A由 组成B and C 当组件B称其为componentDidMount方法 是不是所有元件都安装完成了 或者换句话说React 会起火吗componentDidMount树中的所有组件都