--- title: React.js layout: default --- ### Basic class React.createClass({ render: function () { return (
Hello {this.props.name}
); } }); ### Using var Component = React.createClass({ ... }); var compo = React.render(, mountnode); ### [API](http://facebook.github.io/react/docs/component-api.html) c.setState({ x: y }); c.setProps({ .. }); c.replaceProps({ .. }); c.replaceState({ .. }); c.getDOMNode() c.forceUpdate() c.isMounted() ### [Lifecycle](http://facebook.github.io/react/docs/component-specs.html) render: function() getInitialState: function() getDefaultProps: function() propTypes: {} mixins: [] statics: { .. } /* static methods */ displayName: '..' componentWillMount componentWillUpdate componentWillUnmount componentDidMount componentDidUpdate componentDidUnmount ### Initial states React.createClass({ getInitialState: function () { return {data: []}; }, render: function () { return ( ); } }); ### Default properties React.createClass({ getDefaultProps: function () { return {name: ''}; } ); ### Before rendering React.createClass({ componentWillMount: function () { $.get(this.props.url, function (data) { this.setState(data); }); }, render: function () { return ( ); } }); ### Actions
Name:
React.createClass({ handleSubmit: function (event) { name = this.refs['name'].getDOMNode().value; // see two-way binding below } }) ### [Two-way binding](http://facebook.github.io/react/docs/two-way-binding-helpers.html) React.createClass({ mixins: [React.addons.LinkedStateMixin], getInitialState: function() { return {value: 'Hello!'}; }, render: function() { return ; } }); // LinkedStateMixin adds a method to your React component called // linkState(). ### Lists var TodoList = React.createClass({ render: function() { var createItem = function(itemText) { return
  • {itemText}
  • ; }; return
      {this.props.items.map(createItem)}
    ; } }); ### Class set render: function() { var cx = React.addons.classSet; var classes = cx({ 'message': true, 'message-important': this.props.isImportant, 'message-read': this.props.isRead }); // same final string, but much cleaner return
    Great Scott!
    ; } ### Propagating properties to children var CheckLink = React.createClass({ render: function() { // transferPropsTo() will take any props passed to CheckLink // and copy them to return this.transferPropsTo({'√ '}{this.props.children}); } }); ### Mixins var TickTock = React.createClass({ mixins: [SetIntervalMixin] } SetIntervalMixin = { componentWillMount: function() { .. } } ### [Reusable components](http://facebook.github.io/react/docs/reusable-components.html) * Prop validation