Module: ReactOnRails::ServerRenderingJsCode
- Defined in:
- lib/react_on_rails/server_rendering_js_code.rb
Class Method Summary collapse
- .js_code_renderer ⇒ Object
- .render(props_string, rails_context, redux_stores, react_component_name, render_options) ⇒ Object
- .server_rendering_component_js_code(props_string: nil, rails_context: nil, redux_stores: nil, react_component_name: nil, render_options: nil) ⇒ Object
Class Method Details
.js_code_renderer ⇒ Object
6 7 8 9 10 11 12 |
# File 'lib/react_on_rails/server_rendering_js_code.rb', line 6 def js_code_renderer @js_code_renderer ||= if ReactOnRails::Utils.react_on_rails_pro? ReactOnRailsPro::ServerRenderingJsCode else self end end |
.render(props_string, rails_context, redux_stores, react_component_name, render_options) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/react_on_rails/server_rendering_js_code.rb', line 37 def render(props_string, rails_context, redux_stores, react_component_name, ) " (function() {\n var railsContext = \#{rails_context};\n \#{redux_stores}\n var props = \#{props_string};\n return ReactOnRails.serverRenderReactComponent({\n name: '\#{react_component_name}',\n domNodeId: '\#{render_options.dom_id}',\n props: props,\n trace: \#{render_options.trace},\n railsContext: railsContext\n });\n })()\n JS\nend\n" |
.server_rendering_component_js_code(props_string: nil, rails_context: nil, redux_stores: nil, react_component_name: nil, render_options: nil) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/react_on_rails/server_rendering_js_code.rb', line 14 def server_rendering_component_js_code( props_string: nil, rails_context: nil, redux_stores: nil, react_component_name: nil, render_options: nil ) config_server_bundle_js = ReactOnRails.configuration.server_bundle_js_file if .prerender == true && config_server_bundle_js.blank? msg = " The `prerender` option to allow Server Side Rendering is marked as true but the ReactOnRails configuration\n for `server_bundle_js_file` is nil or not present in `config/initializers/react_on_rails.rb`.\n Set `config.server_bundle_js_file` to your javascript bundle to allow server side rendering.\n Read more at https://www.shakacode.com/react-on-rails/docs/guides/react-server-rendering/\n MSG\n raise ReactOnRails::Error, msg\n end\n\n js_code_renderer.render(props_string, rails_context, redux_stores, react_component_name, render_options)\nend\n" |