Representación del servidor React.js y controladores de eventos

Estoy aprendiendo a usar react.js y tengo algunos problemas para usar los controladores de eventos. La pregunta final sería: ¿Es posible utilizar la representación del lado del servidor y enviar controladores de eventos al cliente automáticamente?

Aquí está mi ejemplo: tengo un index.jsx que renderizo del lado del servidor y lo envío al cliente

var React = require("react");
var DefaultLayout = require("./layout/default");

var LikeButton = React.createClass({
  getInitialState: function() {
    return {liked: false}; 
  }, 
  handleClick: function(event) {
    this.setState({liked: !this.state.liked});
  }, 
  render: function() {
    var text = this.state.liked ? 'like' : 'haven\'t liked';
    return (
      <p onClick={this.handleClick}>
        You {text} this. Click to toggle.
      </p>
    );
  } 
});

var IndexComponent = React.createClass({
   render: function(){
       return (
           <DefaultLayout title={this.props.name}>
                <div>
                        <h1>React Test</h1>
                </div>

                <div id="testButton">
                    <LikeButton/>
                </div> 

                <script type="text/babel" src="/js/react.js"></script>
           </DefaultLayout>
       )
   }   
});

Pero el "botón Me gusta" no tiene ninguna interacción. Para hacer que haga algo al hacer clic, tengo que agregar este código del lado del cliente.

var LikeButton = React.createClass({
  getInitialState: function() {
    return {liked: false};
  },
  handleClick: function(event) {
    this.setState({liked: !this.state.liked});
  },
  render: function() {
    var text = this.state.liked ? 'like' : 'haven\'t liked';
    return (
      <p onClick={this.handleClick}>
        You {text} this. Click to toggle.
      </p>
    );
  }
});

ReactDOM.render(
  <LikeButton />,
  document.getElementById('testButton')
);

Solo comencé con react.js y tal vez solo me falta un concepto importante aquí. Pero, ¿por qué react.js no solo crea el código (que ahora tengo que agregar manualmente al cliente) al representar el lado del servidor de páginas? De esta manera, tengo un código redundante y parece que esto será un desastre en aplicaciones más grandes. Al menos react.js es lo suficientemente inteligente como para no dibujar dos LikeButtons sino para "vincular" el lado del servidor creado al componente del lado del cliente.

Respuestas a la pregunta(2)

Su respuesta a la pregunta