我是一个react初学者,正在研究"ComponentDidMount“的生命周期。我看到的是,一旦页面挂载到浏览器中,就会调用ComponentDidMount。完全没问题。但令我惊讶的是,我们也可以在这一部分设置订阅或事件侦听器。那么我们如何订阅,它在react中的什么位置订阅?比如它在react中是如何工作的?
发布于 2021-01-14 17:05:54
发生的情况是React已经为每个组件实现了这些方法,默认情况下它们只是为空,而您只需更改以使用您自己的方法覆盖它们(正如您在official doc on components的介绍部分中简要看到的那样)。
基本上,正如你可以想象的那样,React确实会运行各种指令来获取你的组件,将它们注入页面,更新它们的视图,删除它们,等等。当它这样做时,它自然知道组件在生命周期的哪个部分,所以对于react来说,将代码的执行添加到它已经在做的事情上是非常简单的。
所以你不需要关心谁或者如何调用你的方法/代码,因为这是react已经完全设置好的。
也就是说,如果您创建计时器、订阅promises、可观察性或任何类似异步性质的内容,您可能需要在这些之后进行清理(React不能为您做这件事,因为它不知道这些订阅),这可以在componentWillUnmount()生命周期方法中完成,该方法在组件从页面卸载之前运行。(我希望你看过这个diagram,它真的做得很好)
话虽如此,我认为重要的是要记住,向前发展的React正在远离基于类的组件,并建议使用带有hooks的功能组件,而不是带有生命周期方法的类组件。
https://stackoverflow.com/questions/65705488
复制相似问题