在构造函数和 componentWillMount 中哪种初始化更合适?

IT技术 reactjs
2021-05-11 04:22:09

如果我有一个需要一些设置的 React 组件(例如计时器或 WebAudio API 等),我在决定初始化是否应该进入constructorcomponentWillMount. 两者有什么优点或缺点吗?我不清楚哪个是更好的地方。

我在谷歌上搜索了一下,看看是否有人讨论过 和 之间的区别constructorcomponentWillMount但我找不到任何东西。

编辑:Redux 和任何异步函数不应该是等式的一部分。

2个回答

通常,this.state如果您的组件是有状态的,您在构造函数中唯一要做的就是分配您的初始值。你不应该在构造函数中做任何其他事情。

componentWillMount一般没有必要。我会说在大多数情况下它的使用是一种反模式。人们使用它的一个原因是在渲染之前最后一次从外部源更新状态,但从技术上讲,在构造函数中分配它是等效的。它提供的唯一次要便利是您可以setState在它内部,但不能在构造函数内部。

对于任何副作用(数据获取或 DOM 操作),您应该使用componentDidMount.

如果您想调用一些通量操作(用于 ajax 调用),请使用 componentWillMount 或 componentDidMount。

您可以在构造函数中初始化状态