我正试图通过使用Hypernova和vueonrails
助手将Vue.js组件添加到支持SSR的RubyonRails应用程序中。
我可以使用以下助手从视图(.html.erb
(中呈现Hypernova的注册组件:
<%= render_vue_component('HelloWorld', message: 'Hello World from SSR!') %>
假设我的HelloWorld
组件的模板中有一个<slot>
:
<template>
<div class="helloworld">
<h1>{{ message }}</div>
<slot></slot>
</div>
</template>
我想使用render_vue_component
:在.html.erb
中复制如下内容
<hello-world message="Hello World from SSR!">
<hello-world>SSR Nested component</hello-world>
</hello-world>
如何将子元素传递给render_vue_component
辅助对象,以便它们由Hypernova渲染?
好吧,我分析了repo,通过查看它,我认为应该只使用render_vue_component
来渲染根组件,就像使用@vue/cli:启动项目时使用main.js
一样
<%= render_vue_component('App', { router }) %>
我通过分析vueonrails的源代码得出了这个结论。
如果查看render_vue_component函数,它只获取标识符和一个数据对象,该对象在内部调用render_react_component
。
通过这个签名,它根本不符合Vue的渲染函数签名,即(element, children)
或(element, attributes, children)
。
也许你可以通过发行回购债券找到更好的支持。
但在使用这个项目之前,我会三思而后行,因为到目前为止还没有任何文档,查看网站,他们似乎更专注于销售有关该项目的书籍,而不是创建文档。