什么时候应该使用componentDidMount?

问题描述

在安装阶段使用React componentDidMount,例如,一个罐子setState并将其包装在componentDidMount中。但是,可以直接使用setState,然后再使用render该组件。

在哪种情况下,我更喜欢componentDidMount来进行安装?

解决方法

它对以下几件事很有用:

  • 启动Ajax
  • the documentation says一样,对事物进行订阅(例如,如果组件以某种方式接收了其父组件无法处理的更新,例如来自Web套接字的事件流)

基本上在您希望首次启动组件时启动进程的任何时间。

经典示例是一个通过ajax加载内容的组件。它是这样的:

  • 在组件的构造函数中,创建其默认状态,表明它正在加载某些东西。
  • componentDidMount中,您将启动加载该内容的ajax调用。
  • (如果)ajax调用成功时,您将使用该调用中的数据来更新状态
  • 您编写render方法,以便它了解加载状态并适当显示加载或加载的内容(或加载错误)。

(在某些情况下,您不想这样做,而是想将其加载到父组件中,而仅创建拥有该组件的组件来显示它。但是有时,则直接在其中进行该组件并不罕见,它是一个有用的示例。)

,

componentDidMount-当您只想在创建组件时仅执行一次功能时,它只能通过react执行一次。