React 如何做node服务端渲染呢

#1

网上找的博客都不完整,有没有相关的文档

#2

SSR的做法很简单。其实就是用react的renderToString来把这个页面的内容渲染成字符串,然后通过express的模版文件渲染上去。如ejs的```<%= react %>````形式写上去。

#3

针对页面内其中一个组件更新它的state,怎么去通过服务器渲染来更新客户端页面呢

#4

如果你要把数据也放到server端去更新的话,那也不难。你在后端把数据也请求好。
直接就在express里面调用相关的API去请求数据就好了。获取到数据也在渲染HTML的时候带上。
如下面的例子:store就是数据

const html = renderToString(
      <Provider store={store}>
        <App />
      </Provider>
)

这时候传到渲染HTML的时候要把这个store带上给前端

#5

这个store好像是使用到redux吧,如果没有用redux的怎么办呢

#6

没有用redux的话,要从最顶部传入属性咯。

const html = renderToString(
        <App  value={value}/>
)

这个值也要传到前端去。用一个全局变量装载再往APP下面传就是了。

#7

但是在组件内部有些函数使用到了jq去做dom的操作,这样会影响到服务端的渲染吗

#8

SSR是没有dom概念的。而且renderToString是不触发componentDidMount

#9

如果一个组件内包含多个组件,只要在最顶层的组件使用renderToString就可以了吗