class ReactComponent
Public Class Methods
new(tag, params, tokens)
click to toggle source
Calls superclass method
# File lib/jekyll-react-component/react_component.rb, line 10 def initialize(tag, params, tokens) parse_params(params) super end
Public Instance Methods
render(context)
click to toggle source
Calls superclass method
# File lib/jekyll-react-component/react_component.rb, line 15 def render(context) @code = super <<~CODE <div id="#{@id}"></div> <script type="module"> import React from 'react'; import ReactDOM from 'react-dom'; import htm from 'htm'; const html = htm.bind(React.createElement); #{@code} ReactDOM.render(html`<${#{@name}} #{pass_props} />`, document.getElementById('#{@id}')); </script> CODE end
Private Instance Methods
parse_params(params)
click to toggle source
# File lib/jekyll-react-component/react_component.rb, line 34 def parse_params(params) params = Params.new(params) @name = params[:name] @id = params.fetch(:id, @name.underscore.dasherize) @props = params.fetch(:props, nil) end
pass_props()
click to toggle source
# File lib/jekyll-react-component/react_component.rb, line 41 def pass_props if @props.nil? '' else "...${#{@props.to_json}}" end end