我想知道组件的类声明中不需要构造函数的条件。我认为它适用于无状态组件,但还有其他原因吗?组件内部没有任何功能(除了生命周期功能)是一个,例如?
答案 0 :(得分:2)
我认为从react docs(强调我的)中摘录一下是合适的:
构造函数是初始化状态的正确位置。 如果你不 初始化州并且您不会绑定方法,您不需要 为您的React组件实现构造函数。
答案 1 :(得分:0)
如果组件在使用之前需要设置内部状态,我通常只添加一个构造函数,否则我会省略构造函数。在组件中具有功能并不会影响我在这方面的决定
答案 2 :(得分:0)
如果使用babel stage-2预设,在任何情况下根本不需要构造函数,因为它提供了有效替换其用法的类属性:
#content
变为
class Component extends React.Component {
constructor() {
this.state = {};
this.handleClick = this.handleClick.bind(this);
}
handleClick() { console.log('click'); }
}
忽略这一点,只有在需要将组件方法绑定到其上下文或者需要初始化class Component extends React.Component {
state = {};
handleClick = () => console.log('click');
}
属性时才需要构造函数。
另一种情况是,如果您需要对state
类属性执行某些操作,但这被React视为反模式。
this.props