Getting Started
Core Concepts
Building Features
API Reference
Deployment
Upgrading
Migrating
Pro
Advanced Topics
Misc
Ai Agents
    Guides
    Shakacode logoShakaCodeDeveloped by

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