React最早的生命周期事件是什么?

时间:2019-02-05 10:35:16

标签: javascript reactjs

我有一个希望尽快安装到window.app变量中的对象,以便嵌套的组件可以在安装时引用。现在,在React之外,我通常会在window.onload()的第一行上执行此操作,我想知道使用我正在学习的React 时最早的位置是什么。

我使用的是应用程序的componentDidMount方法,但是嵌套组件首先触发了自己的componentDidMount;应用的componentDidMount似乎倒数第二。然后我发现了这个helpful lifecycle chart,现在我使用的是App的constructor,它是在嵌套组件之前进行控制台日志记录,因此是一种改进。

App的constructor是我们最早可以编写代码的地方吗?

2 个答案:

答案 0 :(得分:3)

如果您希望它尽早执行并且不依赖于React,则可以将其完全置于react生态系统之外,并在引导React应用程序的ReactDOM.render方法之前进行设置。

答案 1 :(得分:0)

正如评论中所建议的那样,除非绝对必要,否则直接将变量设置为window对象不是一个好主意。

相反,更好的方法是将变量作为道具向下传递。

根据您的评论,

  

好吧,它不仅仅是一个变量,它还是一个对象(类实例)   这正在修改在整个React中使用localStorage的方式   应用程式。具体来说,当组件与localStorage交互时,它   不会直接调用localStorage,而是window.app.setStorage。   您可以看到here想法的演示。

更好的方法是只为将具有set和get方法的组件制作一个组件,并在组件中使用localstorage。仅在需要它们的地方导入该组件。这样可以避免同时使用window对象,并使代码更具可读性。