3
4
5
6
7
8
9
10
11
12
|
# File 'lib/vue_rails/view_helper.rb', line 3
def vue_component(component_name, data={}, options={})
data[:csrf_token] = form_authenticity_token
options.merge!(name: component_name, __is_vue_component__: true)
prerender = options.delete(:prerender)
state = (options.delete(:state) || {}).to_json
router_push_to = prerender && prerender.is_a?(String) ? prerender : nil
content = prerender ?
VueRails::Renderer.server_render(component_name, data.to_json, router_push_to, state)&.html_safe : nil
content_tag(:div, content, options.merge(data: {vue_data: data.to_json, vue_state: state}))
end
|