---
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
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