Скопировано с сайта ReactionJS.
Если вы не инициализируете состояние и не привязываете методы, вы не
необходимо реализовать конструктор для вашего компонента React.
Конструктор для компонента React вызывается перед его монтированием.
При реализации конструктора для подкласса React.Component вы
должен вызывать super (props) перед любым другим оператором. Иначе,
this.props будет неопределенным в конструкторе, что может привести к
ошибки.
Как правило, в React конструкторы используются только для двух целей:
Initializing local state by assigning an object to this.state.
Binding event handler methods to an instance.
Вы не должны вызывать setState () в конструкторе (). Вместо этого, если ваш
компонент должен использовать локальное состояние, назначить начальное состояние
this.state прямо в конструкторе:
Конструктор - единственное место, где вы должны назначить this.state
непосредственно. Во всех других методах вам нужно использовать this.setState ()
вместо этого.
Избегайте введения каких-либо побочных эффектов или подписок в
конструктор. В этих случаях используйте вместо него componentDidMount ().
https://reactjs.org/docs/react-component.html
А вот и цель супер (),
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/super
Я пытался с Babel, вот что я получаю.
С помощью конструктора я получаю эту функцию,
class App extends React.Component{
constructor(props){
this.state = {}
}
}
Связанная часть в ES5,
var App =
/*#__PURE__*/
function (_React$Component) {
_inherits(App, _React$Component);
function App(props) {
var _this;
_classCallCheck(this, App);
_this.state = {};
return _possibleConstructorReturn(_this);
}
return App;
}(React.Component);
без конструктора
class App extends React.Component{
state = {}
}
Код ES5
var App =
/*#__PURE__*/
function (_React$Component) {
_inherits(App, _React$Component);
function App() {
var _getPrototypeOf2;
var _temp, _this;
_classCallCheck(this, App);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _possibleConstructorReturn(_this, (_temp = _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(App)).call.apply(_getPrototypeOf2, [this].concat(args))), _this.state = {}, _temp));
}
return App;
}(React.Component);