Skip to content

Instantly share code, notes, and snippets.

@chhuang
Last active July 17, 2016 13:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chhuang/6e13a340488fa0dff844a46ab3acdc4a to your computer and use it in GitHub Desktop.
Save chhuang/6e13a340488fa0dff844a46ab3acdc4a to your computer and use it in GitHub Desktop.
React ES5 v/s ES6
// 1. require/import
// ES5: require
var React = require('react');
var { Component, PropTypes } = React;
// ES6: import
import React, { Component, PropTypes } from 'react';
// 2. Module import/export
// ES5
var MyComponent = React.createClass({
...
});
module.exports = MyComponent;
var MyComponent = require('./MyComponent');
// ES6
export default class MyComponent extends Component{
...
}
import MyComponent from './MyComponent';
// 3. Declarations
// ES5
var Photo = React.createClass({
componentWillMount: function() { ... },
render: function() {
return (
<Image source={this.props.source} />
);
},
});
// ES6
class Photo extends React.Component {
componentWillMount() { ... }
render() {
return (
<Image source={this.props.source} />
);
}
}
// 4. Props
// ES5
var Video = React.createClass({
getDefaultProps: function() {
return {
autoPlay: false,
maxLoops: 10,
};
},
propTypes: {
autoPlay: React.PropTypes.bool.isRequired,
maxLoops: React.PropTypes.number.isRequired,
posterFrameSrc: React.PropTypes.string.isRequired,
videoSrc: React.PropTypes.string.isRequired
},
render: function() {
return (
<View />
);
},
});
// ES6
class Video extends React.Component {
static defaultProps = {
autoPlay: false,
maxLoops: 10,
};
static propTypes = {
autoPlay: React.PropTypes.bool.isRequired,
maxLoops: React.PropTypes.number.isRequired,
posterFrameSrc: React.PropTypes.string.isRequired,
videoSrc: React.PropTypes.string.isRequired
};
render() {
return (
<View />
);
}
}
// 5. State
// ES5
var Video = React.createClass({
getInitialState: function() {
return {
loopsRemaining: this.props.maxLoops
};
}
});
//ES6
class Video extends React.Component {
constructor(props) {
super(props);
this.state = {
loopsRemaining: this.props.maxLoops
};
}
}
@chhuang
Copy link
Author

chhuang commented Jul 17, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment