Class: React::Rails::ComponentMount

Inherits:
Object
  • Object
show all
Includes:
ActionView::Helpers::TagHelper, ActionView::Helpers::TextHelper
Defined in:
lib/react/rails/component_mount.rb

Overview

This is the default view helper implementation. It just inserts HTML into the DOM (see #react_component).

You can extend this class or provide your own implementation by assigning it to ‘config.react.view_helper_implementation`.

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#output_bufferObject

Returns the value of attribute output_buffer.



11
12
13
# File 'lib/react/rails/component_mount.rb', line 11

def output_buffer
  @output_buffer
end

Instance Method Details

#react_component(name, props = {}, options = {}, &block) ⇒ Object

Render a UJS-type HTML tag annotated with data attributes, which are used by react_ujs to actually instantiate the React component on the client.



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/react/rails/component_mount.rb', line 25

def react_component(name, props = {}, options = {}, &block)
  options = {:tag => options} if options.is_a?(Symbol)
  props = camelize_props_key(props) if camelize_props_switch

  prerender_options = options[:prerender]
  if prerender_options
    block = Proc.new{ concat React::ServerRendering.render(name, props, prerender_options) }
  end

  html_options = options.reverse_merge(:data => {})
  html_options[:data].tap do |data|
    data[:react_class] = name
    data[:react_props] = (props.is_a?(String) ? props : props.to_json)
  end
  html_tag = html_options[:tag] || :div

  # remove internally used properties so they aren't rendered to DOM
  html_options.except!(:tag, :prerender)

  (html_tag, '', html_options, &block)
end

#setup(env) ⇒ Object

ControllerLifecycle calls these hooks You can use them in custom helper implementations



16
17
# File 'lib/react/rails/component_mount.rb', line 16

def setup(env)
end

#teardown(env) ⇒ Object



19
20
# File 'lib/react/rails/component_mount.rb', line 19

def teardown(env)
end