Getting Started
    Core Concepts
    Building Features
    API Reference
    Configuration
    Deployment
    Upgrading
    Migrating
    Pro
    Misc
    Shakacode logoShakaCodeDeveloped by

    Copyright 2026 ShakaCode

    Press Ctrl+K to search anytime
    Burger
    ShakaCode WebsiteCommunityReact on Rails ProGithubSmallView on Github
    Documentation
      Getting Started
      Core Concepts
      Building Features
      API Reference
      Configuration
      Deployment
      Upgrading
      Migrating
      Pro
      Misc
      Shakacode logoShakaCodeDeveloped by

      Copyright 2026 ShakaCode

      Using ReactOnRails in JavaScript

      You can easily render React components in your JavaScript with render method that returns a reference to the component (virtual DOM element).

      /**
       * ReactOnRails.render("HelloWorldApp", {name: "Stranger"}, 'app');
       *
       * Does this:
       *   ReactDOM.render(React.createElement(HelloWorldApp, {name: "Stranger"}),
       *     document.getElementById('app'))
       *
       * @param name Name of your registered component
       * @param props Props to pass to your component
       * @param domNodeId
       * @param hydrate [optional] Pass truthy to update server rendered html. Default is falsy
       * @returns {virtualDomElement} Reference to your component's backing instance
       */
      ReactOnRails.render(componentName, props, domNodeId);

      Why do we need this?

      Imagine that we have some event with jQuery, it allows us to set component state manually.

      <input id="input" type="range" min="0" max="100" />
      <div id="root"></div>
      
      <script>
        var input = $('#input');
        var component = ReactOnRails.render('componentName', { value: input.val() }, 'root');
      
        input.on('change', function (e) {
          component.setState({ value: input.val() });
        });
      </script>