Разница между constructor
и getInitialState
— это разница между ES6 и ES5.getInitialState
используется с React.createClass
, аconstructor
используется с React.Component
.
Следовательно, вопрос сводится к преимуществам/недостаткам использования ES6 или ES5.
Посмотрим на разницу в коде
ES5
var TodoApp = React.createClass({
propTypes: {
title: PropTypes.string.isRequired
},
getInitialState () {
return {
items: []
};
}
});
ES6
class TodoApp extends React.Component {
constructor () {
super()
this.state = {
items: []
}
}
};
Сообщество React приближается к ES6. Также это считается лучшей практикой.
Есть некоторые различия между React.createClass
и React.Component
. Например, как в этих случаях обрабатывается this
.
constructor
также можно использовать для обработки таких ситуаций. Чтобы связать методы с экземпляром компонента, его можно предварительно связать в файле constructor
.