Litt kode:
  var TodoApp = React.createClass({
      getInitialState: function () {
          return {
              initialText: "Nothing here",
              editing: null
          };
      },
      componentDidMount: function () {
          // Init stuff
      },
      render: function () {
          // ...
      }
  });
Hver komponent holder data i props og state. State er komponentens interne tilstand og endres kun av komponenten selv. Props skal derimot ikke endres av komponenten selv men endres gjerne ifm. at foreldre-komponenten rendres. Du kan egentlig tenke på en komponent som en funksjon av props - du sender props inn, og får en rendret (, interaktiv) komponent ut.
render: function () {
    var todoItems = this.props.todos.map(
        function (todo) {
            return TodoItem({key: todo.id, todo: todo});
    });
    return d.div(
        {className: 'container'},
        todoItems,
        d.button({onClick: this.handleClick}, "Klikk meg")
    );
}
this.refs.helloTo.getDOMNode().value;En liten digresjon her: React kommer med en precompiler(?) som lar deg bruke et html-liknende syntax sammen med javascript-koden. Dette kaller de JSX. Jeg kommer ikke til å bruke dette her fordi jeg synes det er en unødvendig kompleksitet (?) som gir liten gevinst.
I JSX:
  function render() {
      var todoItems = todos.map(
          function (todo) {
              return (
                  <TodoItem key={todo.id} todo={todo} />
              );
          }
      );
      return (
          <div className="container">
              {todoItems}
          </div>
      );
  }
Kompilert til javascript:
  function render() {
      var todoItems = todos.map(
          function (todo) {
              return TodoItem({key: todo.id, todo: todo});
      });
      return d.div(
          {className: 'container'},
          todoItems
      );
  }
