I've seen both used interchangeably.
What are the main use cases for both? Are there advantages / disadvantages? Is one a better practice?
The two approaches are not interchangeable. You should initialize state in the constructor when using ES6 classes, and define the getInitialState method when using React.createClass.
getInitialState
React.createClass
See the official React doc on the subject of ES6 classes.
class MyComponent extends React.Component { constructor(props) { super(props); this.state = { /* initial state */ }; } }
is equivalent to
var MyComponent = React.createClass({ getInitialState() { return { /* initial state */ }; }, });
2.1m questions
2.1m answers
60 comments
57.0k users