服务器端是否可以只渲染一个组件?

时间:2017-11-13 06:51:23

标签: javascript reactjs serverside-rendering

我有一个在客户端呈现的反应应用程序。现在我有一个组件,我想在服务器端呈现。我这样做是因为组件将从json构造其布局,我不想在服务器上解析json一次,并且再次在客户端上解析组件。

现在,我正在做renderToString(<Component/>)并将其发送给客户。然后客户端执行ReactDOM.hydrate(component,document.getElementById('someDivId'))。但它只将组件呈现为字符串。它不会将其渲染为元素。我尝试呈现组件的容器是客户端呈现的反应应用程序。

示例代码如下

server.js

app.get('/component/:id',(req,res,next)=>{
  const markup =  renderToString(
    <div>Hello</div>
  )
  let jsonModel = {
    markup
  }
  return res.json(jsonModel);
})

client.js

getComponent(id).then(data => {
     ReactDOM.hydrate(data.markup, document.getElementById('someDivId'));
});

是否可以在服务器端只渲染一个组件?或者我是否必须在服务器端渲染整个应用程序?

0 个答案:

没有答案