如何使用vueonrails进行SSR嵌套组件或开槽内容



我正试图通过使用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)

也许你可以通过发行回购债券找到更好的支持。

但在使用这个项目之前,我会三思而后行,因为到目前为止还没有任何文档,查看网站,他们似乎更专注于销售有关该项目的书籍,而不是创建文档。