我正在使用react-on-rails设置一个项目来进行初始渲染服务器端。我已经将它与 react-router 集成,并成功地为任何给定页面的初始加载渲染服务器端,并且 react-router 从那里接管并充当常规的 React 客户端应用程序/路由器。我不确定初始加载的最佳方式props
,因为初始页面可以是网站的任何“页面”。我没有在网上找到任何集成示例。
例如,如果向 发出请求,与向发出的请求/page-one
相比,它需要不同的数据作为服务器渲染的道具发送/page-two
。
在 Rails 中,所有请求都被重定向到索引视图,其中包含react_component
依次呈现正确的页面。
路线.rb:
get "*path", to: "index#index"
索引/index.html.erb:
<%= react_component("DemoApp", props: {test: "hello"}, prerender: true) %>
这很好用,但是如何根据请求的页面填充这些道具?
如果在进行服务器端渲染时,(通常情况下)用于获取数据的异步调用将发生在服务器端,那么道具就无关紧要了,那就太好了。这可能吗?或者,除了通常通过客户端 AJAX 请求获取的现有 API 之外,我是否必须动态确定应该是什么道具,并有一个单独的服务器端进程来处理它?
我觉得我在这里错过了拼图的关键部分,只是不确定它到底是什么。